大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要讲解了Python任务调度模块APScheduler的用法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
我们提供的服务有:成都做网站、成都网站制作、微信公众号开发、网站优化、网站认证、岳阳ssl等。为上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的岳阳网站制作公司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,对应的参数也相同。
看完上述内容,是不是对Python任务调度模块APScheduler的用法有进一步的了解,如果还想学习更多内容,欢迎关注创新互联成都网站设计公司行业资讯频道。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。