如何基于Redis实现延时任务
基于 Redis 实现延时任务的功能无非就下面两种方案:
1. Redis 过期事件监听
2. Redisson 内置的延时队列Redis 过期事件监听的存在时效性较差、丢消息、多服务实例下消息重复消费等问题,不被推荐使用。
 
Redisson 内置的延时队列具备下面这些优势:
1. 减少了丢消息的可能:DelayedQueue 中的消息会被持久化,即使 Redis 宕机了,根据持久化机制,也只可能丢失一点消息,影响不大。当然了,你也可以使用扫描数据库的方法作为补偿机制。
2. 消息不存在重复消费问题:每个客户端都是从同一个目标队列中获取任务的,不存在重复消费的问题。
 
2024-10-26
浏览39
实战应用
登录后评论
1
分享