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

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

  • 相关阅读:
    xyplorer设置备忘
    如何在CentOS 8上安装Python2 Python3
    为CentOS 8操作系统安装MySQL的方法,以安装MySQL 8为例
    SSH登录服务器报ECDSA host key "ip地址" for has changed and you have requested strict checking
    Linux常用命令大全
    转载:php的几种常用的数据交换格式
    转:GBK编码 VS UTF8编码
    转载:中文在UTF8和GBK编码中的范围
    转:SDL Specification and Description Language 简介
    转:Java中Split函数的用法技巧
  • 原文地址:https://www.cnblogs.com/mujun95/p/11785834.html
Copyright © 2011-2022 走看看