zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    关于C++值传递与引用传递的汇编层面分析
    scrapy抓取的中文结果乱码解决办法
    scrapy抓取的中文结果乱码解决办法
    CSS选择器
    CSS选择器
    xpath选择器
    操作系统知识
    鸟哥的私房菜:Bash shell(五)-数据流重导向
    鸟哥的私房菜:Bash shell(四)-Bash shell的使用环境
    鸟哥的私房菜:Bash shell(三)-命令别名与历史指令
  • 原文地址:https://www.cnblogs.com/shiv/p/5227783.html
Copyright © 2011-2022 走看看