之前用过 APScheduler,可以定时执行任务,但是时间都是需要先设置好,比如使用crontab的方式,这几天了解了一下 celery,发现跟 APScheduler 比较类似,也是需要先设置好时间。
现在有个场景,比如我新建了一个待办事项,时间点为 2020-12-22 11:30 分,我需要在 2020-12-22 11:20 分自动发送邮件通知我,这样的需求怎么实现呢?
我现在想到了两个方法
- 通过定时任务每 5 分钟查询一次数据库,如果存在需要发送邮件,则发送邮件通知;
- 通过 celery 异步任务,在创建待办事项的时候,将其加入到异步任务中,通过延时对应的时间,然后发送邮件;
但是感觉这两种方法非常的蠢,有没有大哥给点建议~