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


点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 国企还是互联网,你怎么选? #
122784次浏览 947人参与
# 找工作,行业重要还是岗位重要? #
8707次浏览 113人参与
# 五一之后,实习真的很难找吗? #
47481次浏览 343人参与
# 盲审过后你想做什么? #
13108次浏览 117人参与
# 应届生进小公司有什么影响吗 #
67300次浏览 984人参与
# 外包能不能当跳板? #
22417次浏览 192人参与
# 25届秋招公司红黑榜 #
257400次浏览 1083人参与
# 租房找室友 #
13620次浏览 98人参与
# 小厂实习有必要去吗 #
42399次浏览 260人参与
# 领导秒批的请假话术 #
10301次浏览 76人参与
# 蚂蚁集团工作体验 #
10853次浏览 70人参与
# 设计人如何选offer #
98661次浏览 690人参与
# 五一假期,你打算“躺”还是“卷”? #
34663次浏览 459人参与
# 考研可以缓解求职焦虑吗 #
21778次浏览 257人参与
# 如果校招重来我最想改变的是 #
245416次浏览 2781人参与
# 面试等了一周没回复,还有戏吗 #
116229次浏览 1079人参与
# 一句话证明你在找工作 #
292421次浏览 2409人参与
# 大疆的机械笔试比去年难吗 #
69734次浏览 603人参与
# 找工作前vs找工作后的心路变化 #
7253次浏览 64人参与
# 潍柴工作体验 #
17053次浏览 17人参与