本文共 1523 字,大约阅读时间需要 5 分钟。
APScheduler的全称是Advanced Python Scheduler。APScheduler能够让任务延时执行或定时执行,还可以根据需求随时添加或删除指定的任务。它还允许将任务存储在数据库中,不会因为程序异常而丢失任务。
安装命令如下:
pip install apscheduler
APScheduler 时间格式:
APScheduler 四大组件分别是触发器,任务存储,执行器,调度器。
·触发器的作用是确定该何时执行任务。
·任务存储中存放的是任务属性,其中包括时间格式。它的默认存储是程序申请的内存空间,但允许开发者将其切换为支持MySQL的SQLAlchemy,或者将作业存储到MongoDB中,又或者将作业存储到Redis中。
·执行器负责执行任务,它会将作业存储中记录的可调用对象交给线程池或进程池执行。
·调度器使APScheduler适用于不同的框架。例如,AsyncIO模块下应该使用AsyncIOScheduler;Gevent框架中应该使用GeventScheduler;没有使用框架的Python程序应该使用BlockingScheduler。
简单使用实例:
cron 格式的时间:
sched.add_job(run, 'date', run_date=datetime.datetime(2020, 12, 4, 16, 27)) # 特定的时间执行一次 程序将会在2020年12月4日16时27分执行
在特定周期内运行和结束,提供了start_date和end_date,实例如下:
"""任务将按照此配置在2020年12月4日至202年12月5日的每天7点到22点,每2分钟的第10秒执行一次。"""sched.add_job(run, 'cron', minute='*/2', second='10', hour='7-22', start_date='2020-12-4', end_date='2020-12-5')
结论:
我们可以根据不同的场景和需求选择不同的定时任务设置方式,如果要在程序中使用到类似Linux中的Crontab定时,那么APScheduler是一个很好的选择。
转载地址:http://evwh.baihongyu.com/