SpringMVC 项目中 Quartz 定时任务的设置纪要
为什么80%的码农都做不了架构师?>>>
项目使用的是SpringMVC, 以前就已经集成了 1.x 版本的 Quartz,有专门的配置文件定义了需要的bean。
一、配置文件示例如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd"><!-- 定时装置所要执行的任务所在的类 --><bean id="xxxJob" class="XXX"/><!-- 引用任务描述 --><bean id="methodInvokingJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><property name="targetObject"><!-- 引用任务方法所在的类 --><ref bean="xxxJob" /></property><property name="targetMethod"><!-- 指定任务方法名称 --><value>xxxMenthod</value></property></bean><!-- 配置触发器 --><bean id="xxxTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"><!-- 这里不可以直接在属性jobDetail中引用taskJob,因为他要求的是一个jobDetail类型的对象,所以我们得通过MethodInvokingJobDetailFactoryBean来转一下 --><property name="jobDetail"><!-- 引用任务描述bean --><ref bean="methodInvokingJobDetail" /></property><!-- 每天的8点到21点每隔1分钟触发,具体说明见附录 --><property name="cronExpression"><!-- 秒 分 时 日 月 周 年 --><value>0 0 07,12,15,23 * * ?</value></property></bean><!-- 配置任务工厂, 只能有一个这种bean --><bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><!-- 添加触发器 --><property name="triggers"><list><ref local="xxxTrigger" /><!-- ... --></list></property></bean>
</beans>
注意:schedulerFactory 只能定义一个,不然在工程启动的时候会报错。
二、实现程序对定时任务执行的控制
目前拟实现一个控制定时任务执行的服务类,供控制层调用,包括对运行中的Quartz中触发器的增、删和修改。
在这个服务类中,可以通过依赖注入注解拿到配置好的 SchedulerFactoryBean 和 触发器bean,例如:
@Autowired
SchedulerFactoryBean schedulerFactory;@Autowired
CronTriggerBean xxxTrigger;
拿到 SchedulerFactoryBean 的 bean 以后,就可以借此获得获得 Scheduler 对象 scheduler :
Scheduler scheduler = schedulerFactory.getScheduler();
通过 scheduler 可以取消和新增任务计划的触发器了:
try {scheduler.unscheduleJob("xxxTrigger", Scheduler.DEFAULT_GROUP);
} catch (SchedulerException e) {e.printStackTrace();
}
try {String newExpression = "5/1 * * * * ?";xxxTrigger.setCronExpression(newExpression);scheduler.scheduleJob(xxxTrigger);
} catch (SchedulerException e) {e.printStackTrace();
} catch (ParseException e) {e.printStackTrace();
}
转载于:https://my.oschina.net/xuleo/blog/212749
SpringMVC 项目中 Quartz 定时任务的设置纪要相关推荐
- SpringMVC项目中,jsp文件无法显示从Controller中传递过来的ModelAndView的模型数据
问题: SpringMVC项目中, jsp文件无法显示从Controller类中传递过来的ModelAndView的模型数据 原因: 并不是所有的jsp页面都支持EL表达式的, 它与web.xml版本 ...
- SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码;
SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码; 参考文章: (1)SpringMVC项目中中 ...
- java项目中build path的设置
右键点击项目新建文件libs 添加jtds jar包引用本地动态链接库(dll)的设置方法 配置LibraryJRE的添加和更换 Java项目中build path的设置总结,包括JRE的添加和更 ...
- vue项目中浏览器图标的设置
在vue项目中,我们怎样设置浏览器图标? 我们来看vue项目的目录结构,根目录下有一个index.html,这个就相当于我们普通项目中的各个html页面文件,所以设置方法就是在index.html的h ...
- Quartz 定时任务时间设置
quartz定时任务时间设置: 这些星号由左到右按顺序代表 : * * * * * * * 格式: [秒] [分] [小时] [日] [月] [周] [年] * 表示所有值. 例如:在分的字段上设置 ...
- 工作中linux定时任务的设置及相关配置
工作中会用到定时任务,来处理以前采集来的数据备份, 每周一凌晨4点执行一次 0 4 * * */1 find/data/templatecdr/oracle/dcndatabak/ -type ...
- eplan项目中自动图号规则设置
eplan项目中,有时候我们需要制定一些关于图纸上图号的规则,如果这些全部手动就跟CAD一样了,我们要充分发挥eplan中能批量自动操作的特性,比如我们要设计一个图号的规则.图号包括: 设备号--高层 ...
- quartz的maven依赖_maven项目使用quartz定时任务
quartz简介: Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单 ...
- 在SpringMVC项目中使用HIkariCP
什么是HIkariCP https://www.jianshu.com/p/15b846107a7c 使用HikariCP数据源 pom.xml <dependency><group ...
最新文章
- php匹配ubb,将php实现过滤UBB代码
- 大话中文文本分类之前数据处理
- [转]数据库开发21条军规
- java处理oom_java处理OOM和SOF
- css hack(ie6-9,firefox,chrome,opera,safari)
- es6 --- Promise.catch
- Atom飞行手册翻译: 4.4 Atom中的序列化
- 第一个DFS,第一个递归 HDU1515
- rabbitMQ概念详细介绍
- 如何把Eclipse语言设置为中文(官方网址语言包)
- #英语# 表示人的名词后缀论文文献
- sublime主题选择
- 新华社-中国移动联手打造盘古搜索 2月22日上线
- 学mysql后的收获_数据库课程学习的收获和心得体会
- 装修后才知道的79件事
- GeoHash算法获取附近店铺和距离
- OllyDbg插件编写
- 盖亚假说:地球是一个生命体吗?
- HTML的滚动文字标签marquee
- 企业电子招投标采购系统源码之首页设计
热门文章
- 中国农业科技领域最大一笔融资来了:极飞科技拿下12亿投资,百度&软银领投...
- metrics-server最新版本有坑,慎用
- Grid不可编辑时,设置行背景颜色
- ASP.NET Core的身份认证框架IdentityServer4(4)- 支持的规范
- 开发安全的 API 所需要核对的清单
- JavaScript标准库系列——RegExp对象(三)
- 《从零开始学Swift》学习笔记(Day 70)——Swift与Objective-C混合编程之Swift与Objective-CAPI映射...
- usaco dec 2012 first!
- adb和adb shell
- 计算机组成原理 — CPU — 主存访问