zoukankan      html  css  js  c++  java
  • APScheduler —— Python化的Cron

    APScheduler全程为Advanced Python Scheduler,是一款轻量级的Python任务调度框架。它允许你像Cron那样安排定期执行的任务,并且支持Python函数或任意可调用的对象。

    安装APScheduler

    可以使用pip工具安装:

    pip install apscheduler

    或在Pypi上下载最新的源码包(https://pypi.python.org/pypi/APScheduler/)进行安装:

    python setup.py install

    简单的应用(翻译自官方文档)

    以默认配置启动Scheduler

    from apscheduler.scheduler import Scheduler
       
    sched = Scheduler()
    sched.start()

    from apscheduler.scheduler import Scheduler

    sched = Scheduler()

    sched.start()

    1.基于固定时间的调度:

    from datetime import date
    from apscheduler.scheduler import Scheduler
       
    # 启动Scheduler
    sched = Scheduler()
    sched.start()
       
    # 定义被自动调度的函数
    def my_job(text):
        print text
       
    # 定义任务的执行时间(2013年5月17日)
    exec_date = date(2013, 5, 17)
       
    # 加入到任务队列,并将其赋值给变量以方便取消等操作
    job = sched.add_date_job(my_job, exec_date, ['text'])

    2.周期任务:

    def job_function():
        print "Hello World"
        
    # job_function将会每两小时执行一次
    sched.add_interval_job(job_function, hours=2)
        
    # 与上面的任务相同,不过规定在2013-5-17 18:30之后才开始运行
    sched.add_interval_job(job_function, hours=2, start_date='2013-5-17 18:30')

       装饰器版本:

    @sched.interval_schedule(hours=2)
    def job_function():
        print "Hello World"

    3.Cron风格的任务的调度:

    def job_function():
        print "Hello World"
       
    # 安排job_function函数将会在六月、七月、十一月和十二月的第三个星期五中的0点、1点、2点和3点分别执行
    sched.add_cron_job(job_function, month='6-8,11-12', day='3rd fri', hour='0-3')

    装饰器版本:

    @sched.cron_schedule(day='last sun')
    def some_decorated_task():
        print "I am printed at 00:00:00 on the last Sunday of every month!"

    更强大的使用方法可以进一步参考官方文档。

  • 相关阅读:
    docker安装nginx
    docker安装tomcat&部署javaweb程序
    linux/work
    Go语言入门篇-gRPC基于golang & java简单实现
    Go语言入门篇-jwt(json web token)权限验证
    Go语言入门篇-JSON&http调用
    Go语言入门篇-基本流程控制
    Go语言入门篇-基本类型排序和 slice 排序
    Go语言入门篇-高级数据类型
    Go语言入门篇-基本数据类型
  • 原文地址:https://www.cnblogs.com/h2zZhou/p/4816540.html
Copyright © 2011-2022 走看看