提醒功能如何制作?请看描述。

tpwonline
  • 242

比如我们现在有n个课程,每个课程有n个人报名。

课程开始前10分钟要给报名课程的人发通知。

这个功能如果用自动任务去做,不断轮询数据库,判断课程是否马上开始。

如果这个模块不仅仅有一个自动任务,而是多个自动任务,性能肯定会超低。

有没有好的方法来做这件事?

评论
阅读 550
3 个回答
✓ 已被采纳

多个定时任务
给他一个容差的区间,比如你这里是要求提前10分钟,你就定义两个定时任务。
一个 9 分钟一次①,一个 2 分钟一次。②
当 ① 运行时,遇到即将需要触发的,比如在 15 分钟以内的,就放到第二组队列去。
由第 ② 个定时任务去从这一组队列中查找,并执行。

有这个大量的需求,就需要有一个定时调度任务系统
课程开课时间都是已知的,那“开始前10分钟”的时间也是可知的。到那个时间触发任务就行了
简单一点的就是直接写系统cron,调用你自己发送通知的接口。

这需求还用轮询? 你课程是怎么开始的?总不会是自动的吧?
后台或者老师点击开启课程(10分钟前预开启)->触发查询数据库这个课程所有报名者信息->信息进入异步队列->后台队列推送到个人通知。

宣传栏