此工具作为 定时任务调度 系统,在日常业务中经常使用,如定时获取第三方数据,定时清理数据 等等;
定时任务 和 业务逻辑 编写方式 一般有2种:
以 定时 清理db数据为例,在flask中,如下:
1.定时任务中 通过 requests 调用自己服务的接口;具体清理数据的业务逻辑在 调用的接口内执行 (优点:结构清晰,负责工作界限分明;缺点:通过定时任务找接口比较麻烦)
2.通过 scheduler.app.app_context() 方法 直接在定时任务中 调用 orm 进行相关业务逻辑处理 (优点:定时任务和业务在一起,查看容易 缺点:有点耦合。。。),代码如下:
具体使用哪种方式,根据实际情况决定;
同一个任务多种触发方式通过装饰器实现:
注意: task 的 id 不能重复,否则失效
引用翻译的网址:https://www.jianshu.com/p/4f5305e220f0
英文官网教程:https://apscheduler.readthedocs.io/en/latest/userguide.html