关注
场景设计:系统中有几万个任务需要在各自的特定时刻触发执行,怎么做?
1. 使用定时任务队列(如Redis的List或数据库表)
- 将每个任务的执行时间和具体业务编码保存在队列中
- 有定时任务扫描队列,获取将要执行的任务
- 注册Cron作业定时扫描队列触发任务
2. 使用延迟队列(如Kafka、RabbitMQ)
- 将(任务,执行时间)作为消息生产到队列
- 消费者订阅队列消息,判断时间是否到达后执行任务
3. Redis计数器+Sorted Set
- 将(任务,执行时间)保存在Sorted Set
- 注册服务保持查询Sorted Set,执行将到期的任务
- 使用计数器避免并发执行同一任务
4. 数据库交易表+定期扫描
- 表列存储(任务,执行时间)
- 定期扫表(如每分钟)执行将到期的任务
- 加TXIsolation避免重复执行
5. 分布式作业调度系统
如Apache Storm/Spark网络拓扑,简化触发逻辑。
查看原帖
点赞 评论
相关推荐

点赞 评论 收藏
分享
04-26 21:03
广东海洋大学 嵌入式软件工程师 点赞 评论 收藏
分享
04-28 10:29
门头沟学院 前端工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的实习收获 #
28712次浏览 485人参与
# 如果有时光机,你最想去到哪个年纪? #
46952次浏览 798人参与
# 实习吐槽大会 #
29789次浏览 142人参与
# 非技术岗简历怎么写 #
209598次浏览 2859人参与
# 晒一晒你的工位 #
85302次浏览 302人参与
# 26届秋招投递记录 #
3231次浏览 98人参与
# 2025牛客秋招季 #
3283次浏览 103人参与
# 被AI治愈的瞬间 #
52244次浏览 597人参与
# 双非能在秋招上岸吗? #
215052次浏览 1141人参与
# 怎么防止在试用期被辞退 #
122270次浏览 911人参与
# 我的租房踩坑经历 #
25772次浏览 274人参与
# 穿越回高考你还会选现在的专业吗 #
20520次浏览 260人参与
# 打工人的工作餐日常 #
40382次浏览 343人参与
# 软开人,说说你的烦心事 #
48040次浏览 359人参与
# 毕业旅行去哪玩儿 #
1180次浏览 32人参与
# 硬件/芯片公司工作体验 #
75116次浏览 664人参与
# 25届秋招公司红黑榜 #
262117次浏览 1094人参与
# 打工人锐评公司红黑榜 #
145747次浏览 915人参与
# 商战,最累的是我们 #
12967次浏览 51人参与
# 研究所笔面经互助 #
69175次浏览 446人参与