博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring项目中使用定时任务
阅读量:6244 次
发布时间:2019-06-22

本文共 2589 字,大约阅读时间需要 8 分钟。

当我们希望在某个时间点来执行一些业务方法的时候就用到定时任务,在spring的项目中使用定时任务很简单。如下

第一步、加入jar包

org.springframework
spring-context-support
3.1.0.RELEASE
org.quartz-scheduler
quartz
1.8.2

第二步、编写任务类

public class TestTask {    @Autowired    private XXXService xxxService;    public void taskMethod1() {                 xxxService.doSomeThing();     }     public void taskMethod2() {     xxxService.doSomeThing2();      }  //......}

任务类和普通java类一样,任务方法也和普通方法一样,任务方法中的操作,根据具体的需要来写。

第三步、在spring配置文件中加入配置。

testMethod1
0 0 12 * * ?

其中 cronExpression 下面的表达式格式为 7位符号 中间加空格拼接而成,可以为6位,用例如下

秒 0-59 , - * /     分 0-59 , - * /     小时 0-23 , - * /     日期 1-31 , - * ? / L W C     月份 1-12 或者 JAN-DEC , - * /     星期 1-7 或者 SUN-SAT , - * ? / L C #     年(可选) 留空, 1970-2099 , - * /     表达式意义     "0 0 12 * * ?" 每天中午12点触发     "0 15 10 ? * *" 每天上午10:15触发     "0 15 10 * * ?" 每天上午10:15触发     "0 15 10 * * ? *" 每天上午10:15触发     "0 15 10 * * ? 2005" 2005年的每天上午10:15触发     "0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发     "0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
  • 反斜线(/)字符表示增量值。例如,在秒字段中“5/15”代表从第 5 秒开始,每 15 秒一次。
  • 问号(?)字符和字母 L 字符只有在月内日期和周内日期字段中可用。问号表示这个字段不包含具体值。所以,如果指定月内日期,可以在周内日期字段中插入“?”,表示周内日期值无关紧要。
    字母 L 字符是 last 的缩写。放在月内日期字段中,表示安排在当月最后一天执行。在周内日期字段中,如果“L”单独存在,就等于“7”,否则代表当月内周内日期的最后一个实例。所以“0L”表示安排在当月的最后一个星期日执行。
  • 在月内日期字段中的字母(W)字符把执行安排在最靠近指定值的工作日。把“1W”放在月内日期字段中,表示把执行安排在当月的第一个工作日内。
  • 井号(#)字符为给定月份指定具体的工作日实例。把“MON#2”放在周内日期字段中,表示把任务安排在当月的第二个星期一。
  • 星号(*)字符是通配字符,表示该字段可以接受任何可能的值。

 

注:我在使用的时候曾报了很多错误,在网上搜了之后基本都说是spring和quartz版本不兼容的问题,总结如下

错误:Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class

附错误示例及解决方法:参考  https://code.google.com/p/wisematches/issues/detail?id=156

spring3.1.0及以下的版本使用quartz2以下的版本OK

spring3.1.1及以上的版本使用quartz2以下的版本OK  

本例:使用spring3.1.0 + quartz1.8.2 OK

经测试:spring3.1.1+quartz2.1.0  OK

    但是 上面的配置文件中需使用org.springframework.scheduling.quartz.CronTriggerFactoryBean(低版本用的是CronTriggerBean)

      

转载于:https://www.cnblogs.com/demingblog/p/3863586.html

你可能感兴趣的文章
JavaScript——执行环境及作用域
查看>>
C++ STL之stack栈
查看>>
【MySQL (6) | 详细分析MySQL事务日志redo log】
查看>>
Linux远程管理常用命令
查看>>
魅族mx5详细打开usb调试模式的步骤
查看>>
ConstraintLayout的使用教程
查看>>
前后端俱全的 具有聊天功能的 react 项目
查看>>
Redux reselect
查看>>
Spring 通过xml获得容器的三种方法比较
查看>>
MySQL索引面试题
查看>>
Systemd 入门教程:命令篇
查看>>
JS 常用函数垫片
查看>>
快速批量检查所有虚拟机的各项指标
查看>>
【软件开发底层知识修炼】五 gcc-C语言编译器
查看>>
React组件生命周期
查看>>
RxJava2.0的初学者必备教程(三)
查看>>
Git代码托管,SSH不同环境办公
查看>>
老司机 iOS 周报 #58 | 2019-03-11
查看>>
Hystrix问题记录
查看>>
Linux 上ps 命令的使用
查看>>