spring 动态配置定时任务
来源:互联网 发布:沪昆高铁质量 知乎 编辑:程序博客网 时间:2024/06/05 19:31
在项目中经常会碰到定时执行的任务,且执行什么任务,及任务执行的时间都由用户自定义的需求。quartz是比较常用的定时器工具,并且在spring框架中也已经做了很好的集成,所以在以spring+hibernate+struts的主流架构中,我们可以采用quartz来做定时器任务的解决方案,下面,我们来看下如何在项目中使用quartz来做动态多任务定时器功能。
这是xml中配置信息
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans><!-- 被执行类 --><bean id="testQuarzt" class="cmcc.gz.pmp.timetest.service.ScheduleInfoService"><property name="scheduler" ref="schedulerFactory" /></bean><!-- 将testQuarzt注入到job中 --><bean id="testQuartzJob"class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><property name="targetObject" ref="testQuarzt" /><property name="targetMethod" value="loadJob" /><property name="concurrent" value="false" /></bean><!-- 将job注入到定时触发器 --><bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"><property name="jobDetail" ref="testQuartzJob" /><property name="cronExpression"><value>0/1 * * * * ?</value></property></bean><!-- 将触发器注入任务工程 --><bean id="schedulerFactory"class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><list><ref bean="testTrigger" /></list></property></bean></beans>
初始化时间
<span style="font-family: Arial, Helvetica, sans-serif;"><property name="cronExpression"></span>
<value>0/1 * * * * ?</value></property>
Class:“”,指定任务类
<bean id="testQuarzt" class="cmcc.gz.pmp.timetest.service.ScheduleInfoService"><property name="scheduler" ref="schedulerFactory" /></bean>
定时任务代码
public void resetJob(String cronExpression) throws SchedulerException, ParseException {<span style="white-space:pre"></span>//<span style="font-family: Arial, Helvetica, sans-serif;">cronExpression:动态传入的时间</span>// 运行时可通过动态注入的scheduler得到trigger,注意采用这种注入方式在有的项目中会有问题,如果遇到注入问题,可以采// 取在运行方法时候,获得bean来避免错误发生。CronTriggerBean trigger = (CronTriggerBean) scheduler.getTrigger("testTrigger", Scheduler.DEFAULT_GROUP);<span style="white-space:pre"></span>//<span style="font-family: Arial, Helvetica, sans-serif;">testTrigger 需要和下面保持一致,反之则无法注入xml中</span>String originConExpression = trigger.getCronExpression();// 如果相等,则表示用户并没有重新设定数据库中的任务时间,这种情况不需要重新rescheduleJobSystem.out.println(originConExpression);if (!originConExpression.equalsIgnoreCase(cronExpression)) {trigger.setCronExpression(cronExpression);scheduler.rescheduleJob("testTrigger", Scheduler.DEFAULT_GROUP,trigger);//重新加载配置时间}}
0 0
- spring 动态配置定时任务
- Spring Quartz 动态配置定时任务
- Spring Quartz 动态配置定时任务
- Spring Quartz 动态配置定时任务
- spring 定时任务配置
- spring 配置定时任务
- spring 配置定时任务
- spring配置定时任务
- Spring定时任务配置
- Spring定时任务配置
- spring 定时任务配置
- spring配置定时任务
- spring定时任务配置
- spring定时任务配置
- Spring 定时任务配置
- spring定时任务配置
- Spring定时任务配置
- spring 定时任务配置
- android uiautomator学习(一)创建工程
- 用std::string取代char*
- android sdk安装2(解决安卓 sdk 无法更新)
- C基础入门笔记1
- string和stringBuilder区别
- spring 动态配置定时任务
- 《孙鑫老师谈如何学好编程》摘要
- 【点击模型学习笔记】Inferring clickthrough rates on ads from click behavior on search results_wsdm2011
- MAVEN备忘录
- rt3070 wifi arm+linux移植;wifi移植参考资料
- shell 中的 2>&1
- 面向对象编程
- Dictionary、List<KeyValuePair<i>>的组合使用
- cronExpression表达式解释: