小言_互联网的博客

(9)Spring Boot 与 quartz 任务调度

438人阅读  评论(0)

 

一、spring boot task 的实践

(1) SpringBoot整合定时任务task非常的简单,共分为以下三步:

  1. 在启动类加上@EnableScheduling注解
  2. 在controller的类上加上@Component注解(或者分离出一个组件)
  3. 在controller的方法上加上@Scheduled注解即可

之后启动程序,就会自动开始执行任务了

   参考博客:地址   源码

(2)Cron表达式确定定时规则的方法

  1. fixedRate: 上一次 启动时间点之后 X秒执行一次 
  2. fixedDelay: 上一次 结束时间点之后 每X秒执行一次
  3. initialDelay: 第一次延迟 X秒执行,之后按照fixedRate的规则每X秒执行 

(3) 分布式场景产生的问题

    部署多台服务之后,到底哪个服务器执行呢,那么就应该思考代码问题,不管不是timer,还是quatz等都是存在问题的,这种问题可以采用一下来执行:

  1. 可以选择代码分离进行单台部署,
  2.  可以选择redis分布式锁,让一台服务拿到相应的key之后去执行
  3. 使用zookeeper分布式锁获取单个锁,

转载:https://blog.csdn.net/qq_41893274/article/details/106366854
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场