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) 来处理回掉
相关推荐
Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你...
Strings: 一个非常非常有用的字符串工具类: 提供 splitting,joining, padding 等操作。 七. Primitives: 扩展 JDK 中未提供的对原生类型(如int、char等)的操作, 包括某些类型的无符号的变量。 八. ...
Google Guava 30.1.1常用类介绍及实践代码
guava多个版本jar包,有guava-2.6.2.jar、guava-18.0.jar、guava-19.0.jar、guava-23.0.jar。
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 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你...
guava-r07 工具类
guava
guava-23.0.zip guava.jar guava
赠送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是Google公司开发的一款适用于Java的工具类集合。
├─Google Guava 第20讲-实战:手动实现一个EventBus-01快速搭建程序结构.wmv ├─Google Guava 第21讲-实战:手动实现一个EventBus-02快速实现程序功能.wmv ├─Google Guava 第22讲-实战:手动实现一个EventBus...
赠送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文档-中文...
赠送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:...
赠送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文档-中文...
Google Guava是一个比较有趣的框架,它提供了很多有趣的的功能, google Guava 给开发者提供了如下常用功能: 集合(collections) 缓存(caching) 原生的类型支持(primitives support) 并发类库(concurrency ...