关于周期任务的功能?

需求

有一个计划任务的需求,用户创建任务的时候选择周期任务,需要每隔一定时间执行一次该任务,这个时间间隔用户自定义,比如3天执行一次,3周执行一次这样。

问题

  1. 怎么动态设置这个任务调度计划?
  2. 当用户删除此任务的时候,如何取消这个任务调度?
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
Complicated
最佳答案

把你要执行的“子任务”记录到数据库里,然后记录上 该任务的执行时间规则,,然后起一个 一分钟一次的“父任务”,这个父任务每分钟都去扫一下数据库,看看当前该哪个子任务该执行了,这时候就直接呗(数据库里记录的是任务的类名,这时候要利用反射的机制创建任务实例)

4年前 评论
左手指月 (楼主) 4年前
Complicated (作者) 4年前
左手指月 (楼主) 4年前
讨论数量: 4
Complicated

把你要执行的“子任务”记录到数据库里,然后记录上 该任务的执行时间规则,,然后起一个 一分钟一次的“父任务”,这个父任务每分钟都去扫一下数据库,看看当前该哪个子任务该执行了,这时候就直接呗(数据库里记录的是任务的类名,这时候要利用反射的机制创建任务实例)

4年前 评论
左手指月 (楼主) 4年前
Complicated (作者) 4年前
左手指月 (楼主) 4年前

将任务放在队列中调用,动态设置队列何时执行。 用户删除任务继续执行,执行前查是否由此用户有继续执行,没有直接return

4年前 评论
左手指月 (楼主) 4年前
vinhson (作者) 4年前
左手指月 (楼主) 4年前
Complicated 4年前

一分钟一次比队列靠谱,队列是不可信的,如果要确保任务一定要执行,那么除了队列以外也要用 cron 做最后保险

4年前 评论

@Hanson 谢谢,还是采用第一种了,将要执行的周期任务放到单独一张表里,每分钟去检测下符合条件的取出来执行。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!