springBoot实现多节点定时任务不会重复消费问题
注解创建的定时任务默认是单节点的,即它们会在应用中的单个实例上执行。当应用扩展到多个节点时,如果不进行任何配置,每个节点上的任务都会独立执行,这可能导致任务重复执行。方法尝试在Redis中设置一个键作为锁,如果设置成功(即该键之前不存在),则获取到锁并执行任务逻辑;否则,说明锁已被其他节点持有,当前节点不执行任务。注解的情况下,要实现避免任务重复执行的功能,最简单的方法是结合上述策略中的分布式锁。需要注意的是,为了防止死锁,我们给锁设置了一个过期时间。在这个示例中,我们使用了Redis作为分布式锁的存储。
原创
2024-06-03 14:31:21 ·
953 阅读 ·
0 评论