spring自带的定时任务框架的有点:简单,拆箱即用
spring自带的定时任务框架的缺点:
- 不支持集群:为避免重复执行的问题
- 不支持生命周期统一管理:不重启服务情况下关闭,启动任务
- 不支持分片任务:处理有序数据时,多机器分片执行任务处理不同数据
- 不支持动态调整:不重启服务的情况下修改任务参数
- 无报警机制:任务失败之后没有报警机制
- 不支持失败重试:出现异常后任务中介,不能根据执行状态控制任务重新执行
- 任务数据统计难以统计:任务数据量大时,对于任务执行情况无法高效的统计执行情况
一些单机任务的情况比较适合,因为拆箱即用,但是我还是推荐国产的轻量级的定时任务框架xxl-job
使用方法:
1 //编写定时任务 每五秒输出一次 2 @Scheduled(cron = "*/5 * * * * ?") 3 public void test(){ 4 System.out.println("Hell啊,树哥"); 5 }
关于触发器corn的配置:
1 每隔5秒执行一次任务: "*/5 * * * * ?" 2 3 每隔1分钟执行一次任务: "0 */1 * * * ?" 4 5 每天23点执行一次任务: "0 0 23 * * ?" 6 7 每天凌晨1点执行一次任务: "0 0 1 * * ?" 8 9 每月1号凌晨1点执行一次任务: "0 0 1 1 * ?" 10 11 每月1号凌晨2点执行一次任务: "0 0 2 1 * ? *" 12 13 每月最后一天23点执行一次任务: "0 0 23 L * ?" 14 15 每周星期天凌晨1点执行一次任务: "0 0 1 ? * L" 16 17 26分、29分、33分各执行一次任务: "0 26,29,33 * * * ?" 18 19 每天的0点、13点、18点、21点各执行一次任务: "0 0 0,13,18,21 * * ?" 20 21 周一到周五每天上午10:15执行一次任务: "0 15 10 ? * MON-FRI" 22 23 2020-2021年的每个月的最后一个星期五上午10:15执行一次任务: "0 15 10 ? 6L 2020-2021" 24 25 #在线配置 26 https://qqe2.com/cron