这篇文章主要讲解了Python任务调度模块APScheduler的用法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
APScheduler是一个Python定时任务框架,使用起来十分方便。提供了基于日期,固定时间间隔以及crontab类型的任务,并且可以持久化任务,并以守护进程方式运行应用。
<强>在APScheduler中有四个组件:强>
- <李>触发器(触发)包含调度逻辑,每一个作业有它自己的触发器,用于决定接下来哪一个作业会运行。除了他们自己初始配置意外,触发器完全是无状态的。简单说就是应该说明一个任务应该在什么时候执行。李> <李>作业存储(工作存储)存储被调度的作业,默认的作业存储是简单地把作业保存在内存中,其他的作业存储是将作业保存在数据库中,一个作业的数据将在保存在持久化作业存储时被序列化,并在加载时被反序列化。调度器不能分享同一个作业存储。李> <李>执行器(执行者)处理作业的运行,他们通常通过在作业中提交制定的可调用对象到一个线程或者进城池来进行。当作业完成时,执行器将会通知调度器。李> <李>调度器(调度器)任务控制器:通过配置执行人,jobstore,触发器,使用线程池(ThreadPoolExecutor默认值20)或进程池(ProcessPoolExecutor默认值5)并且默认最多3个(max_instances)任务实例同时运行,实现对工作的增删改查等调度控制李>
你需要选择合适的调度器,这取决于你的应用环境和你使用APScheduler的目的。通常最常用的两个:
BlockingScheduler:当调度器是你应用中唯一要运行的东西时使用。
BackgroundScheduler:当你不运行任何其他框架时使用,并希望调度器在你应用的后台执行。
<强>作业存储强>
支持4中作业存储,分别是:MemoryJobStore(存储在内存中),sqlalchemy(关系型数据库),mongodb(文档数据库),复述(内存型键值对数据库)
<强>触发方式强>
日期:固定日期触发器:任务只运行一次,运行完毕自动清除;若错过指定运行时间,任务不会被创建
间隔:时间间隔触发器,每个一定时间间隔执行一次。
cron: cron风格的任务触发。
<强>作业操作强>
1。添加作业:上面是通过add_job()来添加作业,另外还有一种方式是通过scheduled_job()修饰器来修饰函数。
@sched.scheduled_job (& # 39; cron # 39; id=& # 39; my_job_id& # 39;,一天=& # 39;去年太阳# 39;)
def some_decorated_task ():
打印(“我在就是印刷>看完上述内容,是不是对Python任务调度模块APScheduler的用法有进一步的了解,如果还想学习更多内容,欢迎关注行业资讯频道。
Python任务调度模块APScheduler的用法