springboot定时任务服务,现在是单节点,用的@Scheduled,要改成多节点的,有没有简单的改造方案?-灵析社区

雾里

@Scheduled的最后会被交给TaskScheduler去调度 ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240926/1e3bb8a61dc2f1084a26c8ec9569b75e.png) 他的已知实现有这些 ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240926/79c38e16366708d4893d28e2fcfa2b1c.png) 我们最常用的是ThreadPoolTaskScheduler,基于JDK线程池的任务调度器。 如果我们要实现集群模式下只能有一个节点执行任务,还使用@Scheduled可以这样做: 配置ThreadPoolTaskScheduler时,重写他实现的接口TaskScheduler的所有方法,在执行前使用redis加分布式锁,执行完毕释放redis分布式锁 ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240926/db39ff7ad8aa0785b16abee2ee017747.png)

阅读量:1

点赞量:0

问AI