时间:2021-05-22
APScheduler是一个Python定时任务框架,使用起来十分方便。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务、并以daemon方式运行应用。
在APScheduler中有四个组件:
你需要选择合适的调度器,这取决于你的应用环境和你使用APScheduler的目的。通常最常用的两个:
BlockingScheduler:当调度器是你应用中唯一要运行的东西时使用。
BackgroundScheduler:当你不运行任何其他框架时使用,并希望调度器在你应用的后台执行。
作业存储
支持4中作业存储,分别是:MemoryJobStore(存储在内存中)、sqlalchemy(关系型数据库)、mongodb(文档数据库)、redis(内存型键值对数据库)
触发方式
date:固定日期触发器:任务只运行一次,运行完毕自动清除;若错过指定运行时间,任务不会被创建
interval:时间间隔触发器,每个一定时间间隔执行一次。
cron:cron风格的任务触发。
作业操作
1. 添加作业:上面是通过add_job()来添加作业,另外还有一种方式是通过scheduled_job()修饰器来修饰函数。
@sched.scheduled_job('cron', id='my_job_id', day='last sun')
def some_decorated_task():
print("I am printed at 00:00:00 on the last Sunday of every month!")
2. 移除作业
job = scheduler.add_job(myfunc,'interval', minutes=2)
job.remove()
Same,using an explicit job ID:
scheduler.add_job(myfunc,'interval', minutes=2, id='my_job_id')
scheduler.remove_job('my_job_id')
3. 暂停和恢复作业
暂停作业:
–apscheduler.job.Job.pause()
–apscheduler.schedulers.base.BaseScheduler.pause_job()
恢复作业:
–apscheduler.job.Job.resume()
–apscheduler.schedulers.base.BaseScheduler.resume_job()
4. 获得job列表
获得调度作业的列表,可以使用get_jobs()来完成,它会返回所有的job实例。或者使用print_jobs()来输出所有格式化的作业列表。
5. 修改作业
def some_decorated_task():
print("I am printed at 00:00:00 on the last Sunday of every month!")
6. 关闭调度器
默认情况下调度器会等待所有正在运行的作业完成后,关闭所有的调度器和作业存储。如果你不想等待,可以将wait选项设置为False。
scheduler.shutdown()
scheduler.shutdown(wait=False)
作业运行的控制
add_job的第二个参数是trigger,它管理着作业的调度方式。它可以为date, interval或者cron。对于不同的trigger,对应的参数也相同。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在python中我们可以使用APScheduler进行定时任务。APScheduler的具体编码这里就不介绍了。主要说下在终端中启动和停止任务。一、运行计划任务
APScheduler支持三种调度任务:固定时间间隔,固定时间点(日期),Linux下的Crontab命令。同时,它还支持异步执行、后台执行调度任务。一、基本架
APScheduler(advancededpythonscheduler)是一款Python开发的定时任务工具。文档地址apscheduler.readthe
最近在研究python调度框架APScheduler使用的路上,那么今天也算个学习笔记吧!#coding=utf-8"""Demonstrateshowtous
环境:python3.5.x+django1.9.x+xadmin-for-python3APScheduler做为一个轻量级和使用量很多的后台任务计划(sch