关注
场景设计:系统中有几万个任务需要在各自的特定时刻触发执行,怎么做?
1. 使用定时任务队列(如Redis的List或数据库表)
- 将每个任务的执行时间和具体业务编码保存在队列中
- 有定时任务扫描队列,获取将要执行的任务
- 注册Cron作业定时扫描队列触发任务
2. 使用延迟队列(如Kafka、RabbitMQ)
- 将(任务,执行时间)作为消息生产到队列
- 消费者订阅队列消息,判断时间是否到达后执行任务
3. Redis计数器+Sorted Set
- 将(任务,执行时间)保存在Sorted Set
- 注册服务保持查询Sorted Set,执行将到期的任务
- 使用计数器避免并发执行同一任务
4. 数据库交易表+定期扫描
- 表列存储(任务,执行时间)
- 定期扫表(如每分钟)执行将到期的任务
- 加TXIsolation避免重复执行
5. 分布式作业调度系统
如Apache Storm/Spark网络拓扑,简化触发逻辑。
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
2025-12-26 10:52
河北传媒学院 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
查看8道真题和解析 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 在大厂上班是一种什么样的体验 #
7364次浏览 105人参与
# 机械人避雷的岗位/公司 #
42175次浏览 280人参与
# 程序员找工作至少要刷多少题? #
13464次浏览 203人参与
# 12306一秒售罄,你抢到回家的票了吗? #
1339次浏览 39人参与
# 我现在比当时_,你想录用我吗 #
6124次浏览 89人参与
# 过年最难忘的一件事 #
23100次浏览 174人参与
# 你最满意的offer薪资是哪家公司? #
69558次浏览 349人参与
# 为了减少AI幻觉,你注入过哪些设定? #
2856次浏览 97人参与
# 牛客AI体验站 #
5043次浏览 153人参与
# AI Coding的使用心得 #
3668次浏览 91人参与
# 找工作的破防时刻 #
253274次浏览 1962人参与
# 刚入职的你踩过哪些坑 #
5557次浏览 113人参与
# 论秋招对个人心气的改变 #
7567次浏览 132人参与
# 一张图晒一下你的AI员工 #
3780次浏览 82人参与
# 关于春招/暑期实习,你想知道哪些信息? #
5611次浏览 98人参与
# 黄金这个事上,你学到了什么 #
1381次浏览 41人参与
# 机械人你知道哪些单休企业 #
85566次浏览 428人参与
# 程序员能干到多少岁? #
7033次浏览 104人参与
# 晒晒你司的新年福利 #
5742次浏览 89人参与
# 关于提前批我想问 #
267650次浏览 2307人参与

