




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Spring3.2.6 框架多线程序配置【定时任务+线程池】费劲周折终于把这个功能配置起来了,在网上找到很多资料,大多数例子基本都是相互拷贝,前后不搭调,搞得不知所措。因此我把这次配置可以完整运行的示例程序整理出来,分享,希望有时间再进一步优化,共同进步。Spring配置文件: 程序对应的类:MainPro.javapackage com.tz.controller;import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;/* * 要起动的主线程 * author wyg20151013 */public class MainPro implements Runnable private ThreadPoolTaskExecutor taskExecutor; public MainPro()public MainPro(ThreadPoolTaskExecutor taskExecutor)this.taskExecutor = taskExecutor; public ThreadPoolTaskExecutor getTaskExecutor() return taskExecutor;public void setTaskExecutor(ThreadPoolTaskExecutor taskExecutor) this.taskExecutor = taskExecutor; public void run() for(int i = 0; i 0) try Thread.sleep(5000); catch (InterruptedException e) e.printStackTrace(); System.out.println(主线程分配完毕); /* * 这个子线程来就是我们系统要处理的任务 * author wyg20151013 */ private class MessagePrinterTask implements Runnable private String message; public MessagePrinterTask(String message) this.message = message; public void run() System.out.println(message); 补充知识:1、解析spring schedule来源:/cutesource/article/details/4900020Spring在schedule这块支持JDK Timer、concurrent、quartz三种,这三种任务调度方案在实现机制和调用方法上都不同,但spring通过对其包装,使得基于spring能用统一的配置和编码风格来使用这三种schedule方案。总得来说这三种schedule都是基于scheduler-trigger-job的基本流程,因此spring通过TimerFactoryBean、ScheduledExecutorFactoryBean和SchedulerFactoryBean分别实现JDK Timer、concurrent和quartz的基本流程。主要逻辑如下代码所示:TimerFactoryBeanjavaview plaincopy1. publicvoidafterPropertiesSet()2. (InitializingTimer);3. this.timer=createTimer(this.beanName,this.daemon);4. /RegisterspecifiedScheduledTimerTasks,ifnecessary.5. if(!ObjectUtils.isEmpty(this.scheduledTimerTasks)6. /注册task和timerregisterTasks(this.scheduledTimerTasks,this.timer);7. 8. ScheduledExecutorFactoryBeanc-sharpview plaincopy1. publicvoidafterPropertiesSet()2. if(logger.isInfoEnabled()3. (InitializingScheduledExecutorService+4. (this.beanName!=null?+this.beanName+:);5. 6. ScheduledExecutorServiceexecutor=7. createExecutor(this.poolSize,this.threadFactory,this.rejectedExecutionHandler);8. /RegisterspecifiedScheduledExecutorTasks,ifnecessary.9. if(!ObjectUtils.isEmpty(this.scheduledExecutorTasks)10. registerTasks(this.scheduledExecutorTasks,executor);11. 12. /Wrapexecutorwithanunconfigurabledecorator.13. this.executor=(this.exposeUnconfigurableExecutor?14. Executors.unconfigurableScheduledExecutorService(executor):executor);15. SchedulerFactoryBeanc-sharpview plaincopy1. publicvoidafterPropertiesSet()throwsException2. .3. /初始化sceduler4. initSchedulerFactory(schedulerFactory);5. this.scheduler=createScheduler(schedulerFactory,this.schedulerName);6. /注册listener、trigger和job7. registerListeners();8. registerJobsAndTriggers();9. .10. /启动scheduler11. startScheduler(this.scheduler,this.startupDelay);12. .13. 14. 顺着scheduler-trigger-job的思路,Spring又分别对JDK Timer、concurrent、quartz的trigger进行了封
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第8课“火柴人”行走教学设计-2023-2024学年小学信息技术(信息科技)五年级上册青岛版(六三制)
- 第二单元 重庆旅游计划说课稿-2025-2026学年小学信息技术(信息科技)旧版西师大版
- 关于同学聚会发言稿18篇
- 2025年浙江省人民警察司晋督培训考试综合类题库含答案详解
- 2025年深圳市大鹏新区发展和财政局招聘考试笔试试卷【及答案】
- 住宅商业公寓社区文化活动策划与运营合同范本
- 茶室租赁合同范本:茶文化休闲体验服务协议
- 出租车公司股权转让与智能交通信息服务合同
- 朱岚离婚协议:财产分割、子女抚养及赡养金协议书
- 东南亚旅游导览出国劳务派遣服务协议
- 充电站运营管理制度(参考模板)
- 体育与健康教学设计《手倒立前滚翻》
- NISP一级考前模拟训练题库200题(含答案)
- JJG 20-2001标准玻璃量器
- 2024外研版初中英语单词表汇总(七-九年级)中考复习必背
- 《大数据平台部署与运维》课程标准(含课程思政)
- 英语中的时间表达(示范课例)
- 脊柱外科进修汇报
- 《史记》上册注音版
- 苏州大学文学院语言学纲要课程笔记
- 危重症患者护理文书书写规范-课件
评论
0/150
提交评论