添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
近视的砖头  ·  Study of the ...·  1 月前    · 
强健的沙发  ·  WebView jump to ...·  3 月前    · 
乐观的香菜  ·  How to connect to ...·  6 月前    · 
活泼的针织衫  ·  wireless - What would ...·  10 月前    · 
欢快的椅子  ·  Fixing Common ...·  11 月前    · 

APScheduler 即可以单独使用,也可以用于常见的 Web 框架。

高级 Python 调度程序( APScheduler )一个 Python 库,可让您安排稍后执行的 Python 代码,可以是一次,也可以是定期执行。您可以根据需要随时添加新作业或删除旧作业。如果将作业存储在数据库中,它们也将在调度程序重新启动后继续运行并保持其状态。重新启动调度程序后,它将运行它应该在脱机时运行的所有作业。

  • APScheduler
  • django-apscheduler
  • 1. 安装工具

    APScheduler 工具的安装方式原来如此简单

    # 直接安装即可
    $ pip install apscheduler
    
    # 下载安装即可
    $ https://pypi.python.org/pypi/APScheduler/
    $ python setup.py install
    
    from datetime import datetime
    from apscheduler.schedulers.background import BackgroundScheduler
    def tick(text=None):
        print(f"Tick! The time is: {datetime.now()} - {text}")
    if __name__ == '__main__':
        scheduler = BackgroundScheduler(timezone="Asia/Shanghai")
        # 使用date触发器
        scheduler.add_job(tick, 'date', run_date=date(2009, 11, 6), args=['hello'])
        # 使用interval触发器
        scheduler.add_job(tick, 'interval', hours=2, seconds=3)
        # 使用crontab触发器
        scheduler.add_job(tick, 'cron', hours=2, seconds=3)
        try:
            print('Press Ctrl+C to exit ...')
            scheduler.start()  # 启动任务
        except (KeyboardInterrupt, SystemExit):
    

    2. 基本组件

    基本组件分为: triggers | job stores | executors | schedulers

  • triggers(触发器)
  • 触发器(triggers)提供的是 scheduling 的调度逻辑,并且每个 job 都有属于自己 triggers ,用于管理任务何时开始执行。除了在初始配置之外,triggers 完全是无状态的。

  • job stores(任务存储器)
  • 任务存储器(job stores)主要包含的是 scheduling 的调度任务。默认情况下,job stores 会将任务存储在内存中,当然你也可以将任务存储在各种各样类型的数据库中,达到持久存储的效果。存储的时候会对数据进行序列化,再被加载的时候进行反序列化。除了默认情况下,job stores 不会将 job data 存储在内存中,而是充当中间人,用于在后端保存、加载、更新和搜索任务。job stores 绝对不会在 schedulers 之间共享数据的。

  • executors(执行器)
  • 执行器(executors)是处理 job 任务如何运行的,通常将 job 指定的可调用对象提交给线程池或进程池来完成此操作。作业完成后,执行器会通知 scheduler 调度程序,调度程序随后会发出相应的事件。

  • schedulers(任务调度器)
  • 任务调度器(schedulers)的作用就是将各个组件给调度起来。通常,你的应用程序中只会运行一个 schedulers。应用程序开发人员通常不直接处理任务存储(job stores),执行器(executors)和触发器(triggers)。相反,任务调度器(schedulers)提供了适当的接口来处理所有这些。配置 job storesexecutors 是通过 schedulers 完成的,添加、修改和删除作业也是如此。

    3. 正确选择

    Choosing the right scheduler, job store(s), executor(s) and trigger(s)

  • apscheduler.events
  •