使用的是Quartz,如何避免重复执行。
请搜索 Quartz 分布式 参考: https://www.cnblogs.com/tqlin/p/11064519.html
三种办法: 1:只在一台服务器上部署该定时任务代码。 2:在定时任务代码上加上某个特定的ip限制,仅某个ip的服务器能运行该定时任务。 3:利用数据库的共享锁事务管理机制来运行定时任务。
加个 if判断就好了,获取当前服务器的host,然后就不用说了吧
xxljob可以解决
解决quartz集群并发问题
可以试试xxl-job,定位就是分布式任务调度器,而且从quartz 切换到xxl-job就是一个注解的区别,几乎无缝过渡
解耦定时任务和业务处理,Quartz只负责定时发送MQ消息,支持幂等(避免业务级别上的重复处理)的MQ消费端, Quartz任务存储(共享任务进度,避免重复发送任务)
分布式调度平台