为什么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 定时任务的设置纪要相关推荐

  1. SpringMVC项目中,jsp文件无法显示从Controller中传递过来的ModelAndView的模型数据

    问题: SpringMVC项目中, jsp文件无法显示从Controller类中传递过来的ModelAndView的模型数据 原因: 并不是所有的jsp页面都支持EL表达式的, 它与web.xml版本 ...

  2. SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码;

    SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码; 参考文章: (1)SpringMVC项目中中 ...

  3. java项目中build path的设置

    右键点击项目新建文件libs 添加jtds  jar包引用本地动态链接库(dll)的设置方法 配置LibraryJRE的添加和更换  Java项目中build path的设置总结,包括JRE的添加和更 ...

  4. vue项目中浏览器图标的设置

    在vue项目中,我们怎样设置浏览器图标? 我们来看vue项目的目录结构,根目录下有一个index.html,这个就相当于我们普通项目中的各个html页面文件,所以设置方法就是在index.html的h ...

  5. Quartz 定时任务时间设置

    quartz定时任务时间设置: 这些星号由左到右按顺序代表 : * * * * * * * 格式: [秒] [分] [小时] [日] [月] [周] [年] * 表示所有值. 例如:在分的字段上设置 ...

  6. 工作中linux定时任务的设置及相关配置

    工作中会用到定时任务,来处理以前采集来的数据备份, 每周一凌晨4点执行一次    0 4 * * */1 find/data/templatecdr/oracle/dcndatabak/ -type ...

  7. eplan项目中自动图号规则设置

    eplan项目中,有时候我们需要制定一些关于图纸上图号的规则,如果这些全部手动就跟CAD一样了,我们要充分发挥eplan中能批量自动操作的特性,比如我们要设计一个图号的规则.图号包括: 设备号--高层 ...

  8. quartz的maven依赖_maven项目使用quartz定时任务

    quartz简介: Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单 ...

  9. 在SpringMVC项目中使用HIkariCP

    什么是HIkariCP https://www.jianshu.com/p/15b846107a7c 使用HikariCP数据源 pom.xml <dependency><group ...

最新文章

  1. php匹配ubb,将php实现过滤UBB代码
  2. 大话中文文本分类之前数据处理
  3. [转]数据库开发21条军规
  4. java处理oom_java处理OOM和SOF
  5. css hack(ie6-9,firefox,chrome,opera,safari)
  6. es6 --- Promise.catch
  7. Atom飞行手册翻译: 4.4 Atom中的序列化
  8. 第一个DFS,第一个递归 HDU1515
  9. rabbitMQ概念详细介绍
  10. 如何把Eclipse语言设置为中文(官方网址语言包)
  11. #英语# 表示人的名词后缀论文文献
  12. sublime主题选择
  13. 新华社-中国移动联手打造盘古搜索 2月22日上线
  14. 学mysql后的收获_数据库课程学习的收获和心得体会
  15. 装修后才知道的79件事
  16. GeoHash算法获取附近店铺和距离
  17. OllyDbg插件编写
  18. 盖亚假说:地球是一个生命体吗?
  19. HTML的滚动文字标签marquee
  20. 企业电子招投标采购系统源码之首页设计

热门文章

  1. 中国农业科技领域最大一笔融资来了:极飞科技拿下12亿投资,百度&软银领投...
  2. metrics-server最新版本有坑,慎用
  3. Grid不可编辑时,设置行背景颜色
  4. ASP.NET Core的身份认证框架IdentityServer4(4)- 支持的规范
  5. 开发安全的 API 所需要核对的清单
  6. JavaScript标准库系列——RegExp对象(三)
  7. 《从零开始学Swift》学习笔记(Day 70)——Swift与Objective-C混合编程之Swift与Objective-CAPI映射...
  8. usaco dec 2012 first!
  9. adb和adb shell
  10. 计算机组成原理 — CPU — 主存访问