Python定时任务框架APScheduler基础知识分享,APScheduler十分方便,课基于日期、固定时间间隔以及crontab类型任务在主程序的运行过程中快速增加新作业或删除旧作业,若把作业存储在数据库中作业的状态会被保存,当调度器重启时不必重新添加作业,作业会恢复原状态继续执行。
定时任务框架APScheduler基础知识
一、定时任务框架APScheduler是什么?
在实际开发中会碰到重复性或周期性的任务,如每天定时爬取某个网站的数据、一定周期定时运行代码训练模型等,类似这类的任务通常需要手动来进行设定或调度,以便其能够在设定好的时间内运行。
在Windows上可以通过计划任务来手动实现,而在Linux系统上往往会用到更多关于 crontab 的相关操作。但手动管理并不是一个很好的选择,如果需要有十几个不同的定时任务需要管理,每次通过人工来进行干预有些笨拙,这时候就真的是“人工智能”了。
将这些定时任务的调度代码化才能够从这种手动管理的纯人力操作中解脱出来。在Python 生态中对于定时任务的一些操作:
1、schedule:第三方模块,该模块适合比较轻量级的一些调度任务,但却不适用于复杂时间的调度
2、APScheduler:第三方定时任务框架,是对Java第三方定时任务框架 Quartz 的模仿与移植,能提供比 schedule 更复杂的应用场景,并且各种组件都是模块化,易于使用与二次开发。
3、Celery Beat:属于 celery 这分布式任务队列第三方库下的一个定时任务组件,如果使用需要配合 RabbitMQ 或 Redis 这类的消息队列套件,需要花费一定的时间在环境搭建上,但在高版本中已经不支持 Windows。
为了满足能够相对