apscheduler 定时任务,

  apscheduler 定时任务,

  APScheduler的全称是AdvancedpythonScheduler,是一个轻量级的Python调度任务调度框架。下面这篇文章主要介绍了Python预定任务apscheduler使用的详细教程,有需要的朋友可以参考一下。

  00-1010前言安装主要组件简单应用完整代码摘要

  

目录

 

  我们无法避免在项目中使用一些定时任务,比如最新的项目。用户点击报名考试后,需要在考试日期临近时,在微信上推送小程序消息提醒客户,并在fastapi中翻阅实现。虽然方法和包很多,但是要么太重(比如需要重启服务,依赖redis,不好用)。虽然fastapi在time模块的time.sleep()机器上的后台任务也可以变相实现,但是相对简单的功能还是可以的,复杂的代码比较麻烦,不如找个包负责这个量。环顾四周,发现一个APScheduler是相当合适的。代码简单,实现效果很好。在这里做个记录吧!

  

前言

 

  pip安装时间表

  

安装

 

  概念性的、熟悉的代码比这些定义更容易理解。

  触发器包含调度逻辑,每个作业都有自己的触发器来决定下一个运行哪个作业。除了它们自己的初始配置意外,触发器是完全无状态的。交谈是您指定触发当前任务的方式。

  解释crontab类型CronTrigger的条件当DateTrigger类型到期时(将在x,x,x,x,x,xxxx的x小时,x分,x秒执行)对应DateTriggerIntervalTrigger的间隔执行(每5秒执行一次)(这个比较复杂,比如周一到周四4: 00到5: 00每5秒执行一次)作业存储存储调度的作业,默认作业存储只是将作业存储在内存中,其他作业存储将作业存储在数据库中。作业的数据在保存到持久性作业存储时被序列化,在加载时被反序列化。调度程序不能共享同一个作业存储。

  Jobstore在调度器中初始化,也可以通过调度器的add_jobstore动态添加Jobstore。每个jobstore

  会绑定一个别名,当调度器添加Add Job时,会根据指定的jobstore在调度器中找到对应的jobstore,并且

  将作业添加到jobstore。

  Jobstore主要通过pickle库的loads和dumps实现【实现的核心是通过python的__getstate__和__setstate__进行重写。

  实现],作业在每次更改时都会动态保存到存储中,然后在使用时动态加载。存储可以是redis或

  它是一个数据库【通过sqlarchemy整合多个数据库】,或者mongodb等。

  APScheduler当前支持的Jobstore:

  MemoryJobStore

  MongoDBJobStore

  再贴现商店

  RethinkDBJobStore

  SQLAlchemyJobStore

  ZooKeeperJobStore

  执行器()处理作业的操作,它们通常通过将指定的可调用对象提交给线程或提交到城市中来完成。当作业完成时,执行器将通知调度程序。

  -用人类语言说话在添加任务的时候是用它包裹的,会根据不同的日程选择执行人的种类。如果选择AsyncIO作为调度库,则AsyncIOExecutor、tornado作为调度库、TornadoExecutor,如果选择starting process作为调度库,则可以选择ThreadPoolExecutor或ProcessPoolExecutor。执行人的选择需要根据实际调度者选择不同的执行人。

  APScheduler当前支持的执行者:

  异步执行程序

  事件执行者

  br />ThreadPoolExecutor
ProcessPoolExecutor
TornadoExecutor
TwistedExecutor

  

  调度器(scheduler)是其他的组成部分。你通常在应用只有一个调度器,应用的开发者通常不会直接处理作业存储、调度器和触发器,相反,调度器提供了处理这些的合适的接口。配置作业存储和执行器可以在调度器中完成,例如添加、修改和移除作业.

  

Scheduler是APScheduler的核心,所有相关组件通过其定义。scheduler启动之后,将开始按照配置的任务进行调度。
除了依据所有定义Job的trigger生成的将要调度时间唤醒调度之外。当发生Job信息变更时也会触发调度。

 

  scheduler可根据自身的需求选择不同的组件,如果是使用AsyncIO则选择AsyncIOScheduler,使用tornado则
选择TornadoScheduler。
目前APScheduler支持的Scheduler:

  AsyncIOScheduler
BackgroundScheduler
BlockingScheduler
GeventScheduler
QtScheduler
TornadoScheduler
TwistedScheduler

  

 

  

 

  

简单应用

 

  

import time

 

  

 

  

完整代码

 

  

# trigeers 触发器

 

  参考:https://www.jb51.net/article/232500.htm

  

 

  

总结

 

  到此这篇关于python定时任务apscheduler使用的文章就介绍到这了,更多相关python定时任务apscheduler使用内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: