`
zhanghaj00
  • 浏览: 63164 次
社区版块
存档分类
最新评论

Guava 的一个异步service类 工具

 
阅读更多
public static ListeningExecutorService EXECUTOR_SERVICE = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(10));


    public static void exec(final FutureService objService, final Object... args) {
        // 异步处理
        ListenableFuture<Object> explosion = EXECUTOR_SERVICE.submit(
                new Callable<Object>() {
                    public Object call() {
                        Object o = null;
                        try {
                            o = objService.handler(args);
                        } catch (Exception e) {
                            log.error(e, "异步错误");
                        }

                        return o;
                    }
                });
        Futures.addCallback(explosion, new FutureCallback<Object>() {
            @Override
            public void onSuccess(Object o) {
                // TODO 成功处理
                objService.onSuccess(o, args);
            }

            @Override
            public void onFailure(Throwable throwable) {
                // TODO 失败处理
                objService.onFailure(throwable, args);
            }
        });
    }

 这段代码可以 可以当场一个工具类,把需要执行的异步操作包装成一个类(FutureService)传进来。

public interface FutureService {
    /**
     * 执行的方法
     *
     * @param args
     * @return
     */
    Object handler(Object... args);

    /**
     * 成功后执行
     *
     * @param result 执行的结果
     * @param args   传递参数(执行方法中的args)
     */
    void onSuccess(Object result, Object... args);

    /**
     * 失败后执行
     *
     * @param args      传递参数(执行方法中的args)
     * @param throwable
     */
    void onFailure(Throwable throwable, Object... args);
}

 

将 需要异步执行的动作继承这个借口。将需要执行的代码

 InfFuture.exec(auditDTService, impcompanyId,auditImport.getId());

 

 

一个异步的工具类 可以直接放在代码里面用。基于 guava 的 ListenableFuture的异步调用 Futures.addcallback(future,new Futurecallback) 来处理回掉

分享到:
评论

相关推荐

    google Guava集合工具类(超实用)

    Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你...

    Guava 16.0 API (CHM格式)

    Strings: 一个非常非常有用的字符串工具类: 提供 splitting,joining, padding 等操作。  七. Primitives: 扩展 JDK 中未提供的对原生类型(如int、char等)的操作, 包括某些类型的无符号的变量。  八. ...

    Google Guava 30.1.1常用类介绍及实践代码

    Google Guava 30.1.1常用类介绍及实践代码

    guava多个版本jar包

    guava多个版本jar包,有guava-2.6.2.jar、guava-18.0.jar、guava-19.0.jar、guava-23.0.jar。

    Java整理的基础工具类项目

    Java整理的基础工具类项目 ...读写锁控制强制读取缓存同步 ...guava本地缓存异步更新 Redis实现Ip、手机号等访问次数限时,支持按照时间段(天、时、分、秒),支持按时间内(每一时间内) LocaleDate 日期处理工具类

    guava源文档

    guava源文档guava源文档guava源文档guava源文档guava源文档guava源文档guava源文档guava源文档guava源文档guava源文档guava源文档guava源文档guava源文档guava源文档guava源文档guava源文档guava源文档guava源文档...

    Google的Guava工具包

    Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你...

    guava-r07.jar

    guava-r07 工具类

    guava-31.1-jre.jar

    guava

    guava-23.0.zip guava.jar guava

    guava-23.0.zip guava.jar guava

    guava-17.0-API文档-中文版.zip

    赠送jar包:guava-17.0.jar; 赠送原API文档:guava-17.0-javadoc.jar; 赠送源代码:guava-17.0-sources.jar; 赠送Maven依赖信息文件:guava-17.0.pom; 包含翻译后的API文档:guava-17.0-javadoc-API文档-中文...

    Guava的Jar包(guava-26.0-jre.jar)

    Guava是Google公司开发的一款适用于Java的工具类集合。

    不加密Google Guava视频教程.txt

    ├─Google Guava 第20讲-实战:手动实现一个EventBus-01快速搭建程序结构.wmv ├─Google Guava 第21讲-实战:手动实现一个EventBus-02快速实现程序功能.wmv ├─Google Guava 第22讲-实战:手动实现一个EventBus...

    guava-23.0-API文档-中文版.zip

    赠送jar包:guava-23.0.jar; 赠送原API文档:guava-23.0-javadoc.jar; 赠送源代码:guava-23.0-sources.jar; 赠送Maven依赖信息文件:guava-23.0.pom; 包含翻译后的API文档:guava-23.0-javadoc-API文档-中文...

    guava-18.0-API文档-中文版.zip

    赠送jar包:guava-18.0.jar; 赠送原API文档:guava-18.0-javadoc.jar; 赠送源代码:guava-18.0-sources.jar; 包含翻译后的API文档:guava-18.0-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:...

    guava-20.0-API文档-中文版.zip

    赠送jar包:guava-20.0.jar; 赠送原API文档:guava-20.0-javadoc.jar; 赠送源代码:guava-20.0-sources.jar; 赠送Maven依赖信息文件:guava-20.0.pom; 包含翻译后的API文档:guava-20.0-javadoc-API文档-中文...

    Guava官方教程-中文

    Google Guava是一个比较有趣的框架,它提供了很多有趣的的功能, google Guava 给开发者提供了如下常用功能: 集合(collections) 缓存(caching) 原生的类型支持(primitives support) 并发类库(concurrency ...

Global site tag (gtag.js) - Google Analytics