quartz任务调度配置 解决jobDetail身份标识存在问题
applicationContext.xml配置:每五秒轮询一次。注意:周和日期不能同时为通配符”*“
<bean id="planInfoServiceImpl" class="com.xxx.xxx"></bean>
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="planInfoServiceImpl"></property>
<property name="targetMethod" value="backup"></property>
</bean>
<bean id="trigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="jobDetail"></property>
<property name="cronExpression" value="*/5 * * * * ? *"></property>
</bean>
业务逻辑从spring容器中拿到任务和触发器:
@Autowired
private JobDetail jobDetail;
@Autowired
private CronTrigger trigger;
业务逻辑创建管理:使用此方法不会采用shutdown销毁Scheduler,因为销毁Scheduler后再次加载jobDetail时会报身份标识存在的异常,索性任务调度使用完毕后使用pauseAll()暂停任务调度,需要时恢复调度,按需修改触发周期。
SchedulerFactory ss = new StdSchedulerFactory();
try {
if(sched==null){//第一次使用加载任务和触发器
sched = ss.getScheduler();
sched.scheduleJob(jobDetail, trigger);
}else{//非第一次触发,恢复任务调度
try {
trigger.setCronExpression("*/5 * * * * ? *");
} catch (ParseException e) {
e.printStackTrace();
}
sched.resumeAll();
}
if(!sched.isShutdown()){ sched.start();
}
} catch (SchedulerException e) {
e.printStackTrace();
}
注意事项:JobDetail可以携带参数,但是就笔者使用的1.8.6版本来说,参数必须在装配jobdetail和scheduler时指定,在使用过程中添加携带参数是无效的。
quartz任务调度配置 解决jobDetail身份标识存在问题的更多相关文章
- Quartz 定时器任务调度配置(以及如何配置quartz启动执行一次)
1. 添加maven依赖.pom.xml 中添加jar文件 <!-- 作业任务调度机制 --> <dependency> <groupId>org.quartz-s ...
- spring3 上配置quartz 任务调度
maven配置: <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>qu ...
- Spring配置Quartz任务调度、及 ThreadPool 线程池
ONE.除了引入 Spring 相关的 jar 包,还要引入 Quartz 的 jar 包 <dependency> <groupId>org.springframework& ...
- Quartz.NET配置
概述 Quartz.NET 在开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时保持了使用的简单性.Quartz 允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行 ...
- (转)Quartz任务调度(1)概念例析快速入门
http://blog.csdn.net/qwe6112071/article/details/50991563 Quartz框架需求引入 在现实开发中,我们常常会遇到需要系统在特定时刻完成特定任务的 ...
- 【使用篇二】Quartz自动化配置集成(17)
出处:https://www.jianshu.com/p/49133c107143 定时任务在企业项目比较常用到,几乎所有的项目都会牵扯该功能模块,定时任务一般会处理指定时间点执行某一些业务逻辑.间隔 ...
- Spring中Quartz的配置
Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz,下面就看看在Spring中怎样配置Quartz: 首先,来写一个测试被调度的类:(QuartzHelloWorldJ ...
- Quartz任务调度快速入门
Quartz任务调度快速入门 概述 了解Quartz体系结构 Quartz对任务调度的领域问题进行了高度的抽象,提出了调度器.任务和触发器这3个核心的概念,并在org.quartz通过接口和类对重要的 ...
- Spring中Quartz的配置及corn表达式
Quartz可以用来执行任务调度功能,如间隔一定时间调用执行任务.用起来还是蛮方便的.只要将你要调用的类配置到Spring配置文件即可. 在Spring的配置文件中配置Quartz. <!-- ...
随机推荐
- [Jobdu] 题目1390:矩形覆盖
题目描述: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 输入: 输入可能包含多个测试样例,对于每个测试案例, 输入 ...
- spark 学习(二) RDD及共享变量
声明:本文基于spark的programming guide,并融合自己的相关理解整理而成 Spark应用程序总是包括着一个driver program(驱动程序),它运行着用户的main方 ...
- Delphi映射模式实验
unit FrmMappingMode; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Contro ...
- CGROUP相关知识
安装 CentOS 6 yum install libcgroup CentOS 7 yum install libcgroup-tools 使用 默认情况下有几个控制器可以进行限制,分别是 cpus ...
- 动态更新highcharts数据
<!doctype html> <html> <head> <script type="text/javascript" src=&quo ...
- 超NB的WINDWS命令 当插移动硬盘时 自动弹出要格式化硬盘
其中d表示无法识别的那个盘的盘符 移动磁盘修复成功
- UITableView__cell 距tableview顶端有间距
UITableView__cell 距tableview顶端有间距 如何去掉这个间距呢?解决方法如下: //top 为cell距顶端的间距 (一般为负值) self.formTable.con ...
- 0072 Java中的泛型--泛型是什么--泛型类--泛型方法--擦除--桥方法
什么是泛型,有什么用? 先运行下面的代码: public class Test { public static void main(String[] args) { Comparable c=new ...
- win7下如何显示缅文和使用缅文输入法?
windows 7 操作系统默认不支持缅文,所以缅文在win7上不能显示,当然也没有提供缅文输入法. 一.显示缅文 windows系统下显示缅文字母只需要安装缅文字体就可以了.目前常见的缅文字体就是Z ...
- PHP flock() 函数 php中的文件锁定机制
举一个例子: 假设一个文件读取的过程,有数万人在同时操作,那么极可能a用户刚刚写入,b用户也写入了,两者以至于混乱,或者在读取的时候,读取到别人写的数据.就好比上公共厕所,去厕所的时候要把门给打开上, ...