zoukankan      html  css  js  c++  java
  • 定时任务模块——APScheduler

    一、概念:

      python定时任务框架,基于日期,固定时间间隔,crontab类型的任务,并且可以持久化任务,并能以deamon守护方式运行任务

    二、简介:

      安装:pip install apscheduler

      其中7中调度器:

    1. BackgroundScheduler:如果希望调度器在后台执行使用
    2. BlockingScheduler:当调度器是应用唯一要运行的任务时使用
    3. AsyncIOScheduler:使用asyncio模块(一个异步框架)一起使用
    4. GeventScheduler:使用gevent(高新能的python并发框架)作为IO模型,和GeventExecutor配合使用
    5. TornadoScheduler:使用Tornado(一个web框架)的IO模型,用ioloop.add_timeout 完成定时唤醒
    6. TwistedScheduler:
    7. QtScheduler:如果是一个qt应用,需使用QTimer完成定时唤醒

    每种调度器中,都有四个组件

    触发器(trigger)触发器包含调度逻辑,描述一个任务何时被触发,触发器内置三种方式。

    1. date:基础触发器,特定的时间点触发,只执行一次;
    2. interval:固定时间间隔触发,可以执行多次;

    3. cron:在特定时间周期性的触发,可以执行多次;每次任务执行的间隔时间可以不一样;

    任务/作业存储(job store)指定了作业被存放的位置
    1.默认情况下保存在内存
    2.也可以保存在数据库中,如MySql/MongoDB
    3.调度器之间不能共享作业存储

    执行器(executor):执行器是将指定的作业(作业函数)提交到线程池,当任务完成时,执行器通知调度器触发相应的事件。
    1.ProcessPoolExecutor(默认10个)
    2.ThreadPoolExecutor(默认10个)


    调度器(scheduler):


    三、原理

      触发器(trigger),作业存储(job store),执行器(executor),调度器(scheduler)

      

    四、如何使用

    五、实例演示

    BlockingScheduler

    以阻塞进程的形式,每秒执行一次

  • 相关阅读:
    python设置中文编码
    python中的tuple 元组
    python 日期的格式化
    python 中json的使用
    python之连接数据库
    flask之前后端交互
    flask之render_template
    Charles的https抓包方法及原理/下载ssl/http证书
    稳定的python国内镜像库
    Jmeter(五)Jmeter接口测试和压力测试
  • 原文地址:https://www.cnblogs.com/mujun95/p/11785834.html
Copyright © 2011-2022 走看看