• Python的一个定时任务框架APScheduler


    APScheduler是基于Quartz(java实现的一个开源作业调度框架)的一个Python定时任务框架,实现了Quartz的所有功能,使用起来十分方便

    项目地址 https://bitbucket.org/agronholm/apscheduler/

    文档 http://apscheduler.readthedocs.org/en/3.0/

    简单查看文档

    APScheduler has four kinds of components:

    • triggers
    • job stores
    • executors
    • schedulers

    Here’s a quick guide for choosing a scheduler

    • BlockingScheduler: use when the scheduler is the only thing running in your process
    • BackgroundScheduler: use then you’re not using any of the frameworks below, and want the scheduler to run in the background inside your application
    • AsyncIOScheduler: use if your application uses the asyncio module
    • GeventScheduler: use if your application uses gevent
    • TornadoScheduler: use if you’re building a Tornado application
    • TwistedScheduler: use if you’re building a Twisted application
    • QtScheduler: use if you’re building a Qt application

    常见的几种调度栗子

    apschedules/examples/

    https://bitbucket.org/agronholm/apscheduler/src/a6545cf29831bb6d8f055aeb2fa9d5204e9bd192/examples/?at=master

    参照栗子,我可以迅速的写出最常规的BlockingScheduler调度

    from datetime import datetime
    import os
    
    from apscheduler.schedulers.blocking import BlockingScheduler
    
    def tick():
        print('Tick! The time is: %s' % datetime.now())
    
    
    if __name__ == '__main__':
        scheduler = BlockingScheduler()
        scheduler.add_job(tick, 'interval', seconds=3)
        print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C'))
    
        try:
            scheduler.start()
        except (KeyboardInterrupt, SystemExit):
            pass
    

    add_job函数这里有一个max_instances参数用于指定当前工作同时运行的实例数量,默认为1,

    但是可能的上一个工作正在运行而未结束,那么下一个就认为失败, 那么此时可以为一个特定的作业设置最大数量的调度程序

    如:

    scheduler.add_job(tick, 'interval', seconds=3, max_instances=6)
    job.modify(max_instances=6, name='Alternate name')


    更多的信息参考文档以及examples。

  • 相关阅读:
    ffmpeg结构体以及函数介绍(三)
    FFMPEG解码流程(转)
    ffmpeg结构体以及函数介绍(一)
    摄像头视频采集压缩及传输
    bedework文档(开始简单部分)
    【实时数据库PISDK】关于PITime的悲剧
    【项目研究】自动安装并配置ODBC的思路与实现
    【读书笔记】动态链接库
    如何最快测试CPU是大端机还是小端机?
    学习编程的五条捷径
  • 原文地址:https://www.cnblogs.com/shiv/p/5227783.html
Copyright © 2020-2023  润新知