当前位置: 首页 > news >正文

如何选技能网站建设广东省建设工程规范文件网站

如何选技能网站建设,广东省建设工程规范文件网站,免费网页加速器,wordpress位置在一些后台耗时的场景比如说生成统计报表#xff0c;生成数据文件#xff0c;执行批量任务时候#xff0c;需要异步执行#xff0c;先登记信息#xff0c;然后异步执行批量同步返回给客户端。在spring中要想使用异步方法执行#xff0c;必须使用EnableAsync注解开启async…在一些后台耗时的场景比如说生成统计报表生成数据文件执行批量任务时候需要异步执行先登记信息然后异步执行批量同步返回给客户端。在spring中要想使用异步方法执行必须使用EnableAsync注解开启async。 开启异步执行配置 Configuration EnableAsync ComponentScan(basePackages {com.cpx.service.async}) public class AsyncConfig {}然后在需要异步执行的方法上添加Async注解 Service public class AsyncService {Asyncpublic void exec(){try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(LocalDateTime.now().toString() :exec end);} }添加Async注解的方法必须是public的。方法所属的类必须是一个bean才能被扫描到。this方式调用异步方法是没有效果的。因为使用的动态代理。 测试方法的异步执行 AnnotationConfigApplicationContext ctx new AnnotationConfigApplicationContext(AsyncConfig.class); AsyncService asyncService (AsyncService) ctx.getBean(asyncService); System.out.println(LocalDateTime.now().toString() start); asyncService.exec();//该方法调用会异步执行 System.out.println(LocalDateTime.now().toString() main end); ctx.close();TaskExecutor 方法的异步执行是通过线程池来执行的 spring默认会从beanFactory中尝试去获取TaskExecutor类型的bean如果获取不到就会继续尝试获取bean name为’taskExecutor’的bean还获取不到就创建一个SimpleAsyncTaskExecutor类型的执行器。SimpleAsyncTaskExecutor每来一个任务会启动一个Thread来执行任务不会重复利用。这么看SimpleAsyncTaskExecutor不是一个严格意义的线程池线程并不会重用。如果高并发耗时任务可能会导致一定的内存使用问题。这里可以指定线程池。 第一种通过实现AsyncConfigurer接口然后重写getAsyncExecutor()方法。 public class AsyncConfig implements AsyncConfigurer {Overridepublic Executor getAsyncExecutor() {//自定义线程池实现ThreadPoolTaskExecutor threadPoolTaskExecutor new ThreadPoolTaskExecutor();threadPoolTaskExecutor.initialize();return threadPoolTaskExecutor;} }这种线程池是所有Async注解都可以使用另一种可以在Async(“taskExecutor”)注解上指定线程池名字。 返回值 可以返回一个future。 Async public FutureString exec(){try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}return new AsyncResultString(ok); }异常处理 有返回的Async方法异常会被封装到future里没有返回值的可以定义一个AsyncUncaughtExceptionHandler来处理异常 public class CustomAsyncExceptionHandler implements AsyncUncaughtExceptionHandler {Overridepublic void handleUncaughtException(Throwable ex, Method method, Object... params) {System.out.println(method.getName(),发生异常);//TODO} }然后在实现AsyncConfigurer的bean里重写getAsyncUncaughtExceptionHandler()返回自定义的异常handler。 异步执行的原理还是通过EnableAsync引入对应的bean后置处理器来使用advisor对Async标识的方法进行代理增强。方法的执行会通过AsyncExecutionInterceptor代理执行。
http://www.hkea.cn/news/14347984/

相关文章:

  • 常州市金坛建设局网站dede网站建设的个人总结
  • 企业网站建设费用预算本地wordpress登录
  • 衡水网站建费用网站建设代码出现乱码
  • 典型的营销型企业网站公司可以备案几个网站
  • 江苏住房城乡建设部网站石家庄有没有销售做被用的网站
  • 怎么制作购物网站麻涌镇网站仿做
  • 有什么网站建设比较好的公司wordpress 上传到七牛
  • 网站的落地页网站底部友情链接
  • 专注软件优化分享的网站重庆相亲网
  • 巨鹿网站制作网页网站建设
  • 怎么创建图片网站wordpress消除
  • 昆山做网站的公司有哪些爱演示网
  • 临沂网站排名优化最新国际消息
  • 哪个网站做系统优化设计电子版在哪找
  • 网络平台怎么建立网站吗WordPress的好处
  • 网站如何规划电脑上自己做科目一的网站
  • 宠物网站开发与实现结论wordpress类目
  • 网站做的好的公司名称盈润企业网站管理系统
  • 有像考试佳园一样做资料的网站吗seo是付费推广吗
  • 在工商局网站做年报要交费吗wordpress 登录功能
  • 建立网站的关键是定位电脑自带的网页制作软件
  • 泰塔科技网站建设h5网站建设 案例
  • 做类似电驴网站国外服务器做网站
  • 外贸网站建设内容包括哪些md5 wordpress
  • 网站设计和策划的步骤是什么最权威的做网站设计哪家好
  • 如何建立一个购物网站做响应式网站应该注意什么
  • 泊头市建设网站网站排名突然掉了怎么回事
  • 购物网站建设市场调查论文长沙建个网站一般需要多少钱
  • 营销型网站重要性wordpress后台文件
  • 网站服务费怎么做凭证做网站 套用模板之后用什么改