spring+quartz动态定时器
来源:互联网 发布:白夜追凶小说结局知乎 编辑:程序博客网 时间:2024/04/23 19:05
1、写一个timer类MyTimer,类中注入Scheduler变量和setScheduler方法。
2,写一个方法doTimer,定时任务需要执行的代码写在里面。
CronTriggerBean trigger = (CronTriggerBean) scheduler.getTrigger("doTime", Scheduler.DEFAULT_GROUP);
String originConExpression = trigger.getCronExpression();
if(!originConExpression.equalsIgnoreCase(dbCronExpression)){
trigger.setCronExpression(dbCronExpression);
scheduler.rescheduleJob("doTime"+timer, Scheduler.DEFAULT_GROUP,trigger);
}
"doTime" 是spring配置的CronTriggerBean,获取配置中的定时时间,当和数据库中的动态设定的时间不同时,重新加载scheduler。
3、spring配置(需设置lazy-init='false')(支持多个动态定时任务):
<bean id="myTimer" class="MyTimer">
<property name="scheduler" ref="startQuertz"></property>
</bean>
<bean id="jobTask1" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="myTimer"/>
<property name="targetMethod" value="doTimer1"/>
<property name="concurrent" value="false"/>
</bean>
<bean id="jobTask2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="myTimer"/>
<property name="targetMethod" value="doTimer2"/>
<property name="concurrent" value="false"/>
</bean>
<bean id="jobTask3" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="myTimer"/>
<property name="targetMethod" value="doTimer3"/>
<property name="concurrent" value="false"/>
</bean>
<bean id="doTime1" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobTask1"/>
<property name="cronExpression" value="0 16 15 ? * MON"/>
</bean>
<bean id="doTime2" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobTask2"/>
<property name="cronExpression" value="0 30 12 ? * WED"/>
</bean>
<bean id="doTime3" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobTask3"/>
<property name="cronExpression" value="0 30 11 ? * SAT"/>
</bean>
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="startQuertz" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="doTime1"/>
<ref bean="doTime2"/>
<ref bean="doTime3"/>
</list>
</property>
<property name="autoStartup" value="true" />
</bean>
- spring+quartz动态定时器
- Spring quartz定时器动态多任务实现
- Spring quartz定时器动态多任务实现
- Spring quartz定时器动态多任务实现
- 【Spring】Quartz定时器动态设置定时时间
- spring quartz定时器,及其动态处理方式
- spring的Quartz的动态定时器
- spring定时器动态生成quartz【工具包系列】
- Spring整合Quartz实现动态定时器
- Quartz动态定时器
- spring定时器与quartz定时器
- Spring管理quartz动态创建定时器,增,删,改,查
- Spring整合Quartz实现动态任务调度定时器
- Spring Quartz定时器详情
- spring定时器(quartz实现)
- spring quartz配置定时器
- Spring Quartz定时器
- spring quartz定时器
- TableViewController_01
- intent intent-filter
- oracle树形结构由子节点递归得到父节点
- 什么是格式化字符串攻击?
- Jetty实战之 嵌入式Jetty运行web app
- spring+quartz动态定时器
- 有关毕业设计--题目选定
- 【v2.x OGE教程 17】事务处理
- 实现java mail发送邮件
- java中Date与String的相互转化
- Eclipse快捷键 10个最有用的快捷键
- 【例 2.13】
- SAAAAAAAAAAAAAAAAAAAAAAA
- 使用JFreeChart报javax.xml.parsers.ParserConfigurationException