1
aragakiyuii 2019-10-31 14:13:33 +08:00 via Android
quartz 呢,用户前台制定 x 时 x 分 x 秒,后台生成 cron 添加定时任务
|
2
javapythongo 2019-10-31 14:13:58 +08:00
写个时间轮,设置时间的时候,算一下 duration,以前写了个简单的,你可以参考下 github.com/fangxuee/timewheel
|
3
x66 2019-10-31 15:04:54 +08:00
如果最小粒度是每分钟,我建议启动一个 0 * * ? * * * 的 cron(每分钟)来扫描当前这一分钟的任务并执行。
|
4
v2orz 2019-10-31 15:16:27 +08:00
MQ 延时消息也能实现
|
5
sujin190 2019-10-31 15:36:49 +08:00
量不多精度要求也不高的话,crontab 其实挺好用的了,每分钟查询判断下就是了
延时队列的问题是无法撤回或者修改,也不是幂等的,容错要麻烦很多 https://github.com/snower/forsun 可以看看之前做的定时调度服务,可以通过一个 key 创建一个定时任务,重复创建幂等,可以方便的撤销修改,任务保存可以使用 redis 持久化任务信息,不担心丢失,最小秒级定时任务高效,支持 http 接口和超时触发请求 http 接口 |
6
lllllliu 2019-10-31 15:43:36 +08:00
消息队列延时消息,
还有 Redis 过期事件订阅, |
7
EscYezi 2019-10-31 17:31:09 +08:00 via iPhone
起一个线程死循环 15s 扫描一次所有提醒是否距离发邮件的时间小于等于 15s,有的话调用发邮件接口
不过提醒多的话,调发邮件接口可能要弄个线程池 |