Spring 自动定时任务配置
来源:互联网 发布:java list 合并去重 编辑:程序博客网 时间:2024/06/06 03:40
Spring中可以通过配置方便的实现周期性定时任务管理,这需要用到以下几个类:
org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean--配置需要调度的Bean的某个方法
org.springframework.scheduling.quartz.SimpleTriggerBean--定时器,负责配置启动时间、执行周期
org.springframework.scheduling.quartz.SchedulerFactoryBean--触发器,负责配置所有定时器
实例如下:
[java] view>"taskService" class="com.mrd.task.TaskService"></bean> <bean id="autoTask" class ="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="taskService"/> </property> <property name="targetMethod"> <value>doTask</value> </property> </bean> <bean id="autoTaskTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> <property name="startDelay"><value>300000</value></property> <property name="repeatCount"><value>-1</value></property> <property name="repeatInterval"><value>28800000</value></property> <property name="jobDetail"><ref bean="autoTask" /></property> </bean> <bean id ="triggersStarter" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" singleton="true"> <property name="triggers"> <list> <ref bean="autoTaskTrigger"/> </list> </property> <property name="autoStartup"> <value>true</value> </property> </bean >
注意以上4个Bean需要按顺序配置,从配置属性的字面意思,应该很容易理解具体的参数含义。
另外对SchedulerFactoryBean的使用需要注意以下几个方面:
1、SchedulerFactoryBean会自动启动。
当在spring文件中定义了多个SchedulerFactoryBean实例时,一定要小心,因为这些ScheduleFactoryBean自从load进程序里,就会自动启动。如果要手动控制,注意要将autoStartup属性设置为false,注意如果没有singleton="true",SchedulerFactoryBean就不是单独存在的,autoStartup也就不能很好的手动控制
定时器。
2、SchedulerFactoryBean暴露的是Scheduler,而不是SchedulerFactoryBean。
SchedulerFactoryBean实现了FactoryBean接口,必须实现两个方法,一个是getObjectType,另外一个则是getObject;其中getObjectType定义了返回的类型应该为Scheduler,而getObject指定了返回的是其一个重要属性scheduler,这个scheduler就是我们要获得的调度。
若在配置文件里为SchedulerFactoryBean定义了id属性为"scheduler",则在程序里调用getBean时,需要注意getBean("scheduler")返回的是Scheduler对象
3、
SchedulerFactoryBean中有两个很重要的属性,一个是scheduler,另外一个是schedulerFactoryClass,spring通过用schedulerFactoryClass做代理来产生调度,并把它赋给scheduler。
private Class>
//如果你没有指定schedulerFactoryClass ,那么它用的是quartz中自带的调度工厂,
this.scheduler =>
//这个sched就是要代理生成的scheduler,getSchedulerName只有一句话,如下:
cfg.getStringProperty(PROP_SCHED_INSTANCE_NAME,"QuartzScheduler");
//如果我们没有使用一些特殊的机制,那么返回的只能是一个固定的字符串。
如上说述,如果我们希望不进行改造,就在spring的配置文件中定义多个调度的方法来实现我们个性化的任务安排时,可能并不可行。因为spring配置的scheduler只能有一个,即使你定义了多个调度,那么其实实现的只有一个,只是所有你希望指向不同调度的id都会指向它罢了,而这个调度会包含了其它所有调度中的任务。
4、抱错:org.quartz.SchedulerException: Repeat Interval>http://aniyo.iteye.com/blog/1441585
0 0
- Spring 自动定时任务配置
- Spring 自动定时任务配置
- Spring 自动定时任务配置
- Spring 自动定时任务配置
- Spring 自动定时任务配置
- Spring 自动定时任务配置
- spring quartz自动定时任务配置
- spring自动定时任务
- spring 定时任务配置
- spring 配置定时任务
- spring 配置定时任务
- spring配置定时任务
- Spring定时任务配置
- Spring定时任务配置
- spring 定时任务配置
- spring配置定时任务
- spring定时任务配置
- spring定时任务配置
- 理工大学ACM平台题答案关于C语言 1581 求和
- iOS 动画总结----UIView动画
- Java Web 中 过滤器与拦截器的区别
- qemu 使用串口与主机通信
- 天枢导航-微信公众平台开发-导航定位GPS车辆管理系统
- Spring 自动定时任务配置
- Gluster常见故障处理和HOWTO资源
- Android特效 五种Toast详解
- 微店挑战淘宝,能否活着出去
- 黑马程序员_java高新技术总结【2】(反射)
- 黑马程序员_代理
- 0.driverbase-IoGetDeviceObjectPointer源码(need ObDereferenceObject)
- 使CEdit滚动到最下面的方法
- nyoj 303-序列互换
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
什么是刮痧
刮痧痛不痛
刮痧是什么
刮痧经络图
刮痧油
中暑刮痧
刮痧原理
刮痧精油
刮痧器具
刮痧穴位
肚子刮痧
刮痧多少钱
刮痧和拔罐
手臂刮痧
经常刮痧
刮痧减大腿
刮痧师培训
刮痧养生馆
刮痧管用吗
瘦小腿刮痧
头部刮痧
眼部刮痧
刮痧好不好
刮痧的精油
用什么刮痧
学习刮痧
刮痧在线
刮痧的价格
美容院刮痧
刮痧的手法
关于刮痧
张秀勤刮痧
刮痧好吗
脸上刮痧
教你学刮痧
刮痧的图片
男不刮痧女不拔罐为什么
刮痧后多久可以洗热水澡
男不刮痧女不拔罐
背部刮痧的好处
刮痧注意事项