• python定时任务APScheduler


    转载链接:https://www.jianshu.com/p/4aadf3324801

    APScheduler是一个python的第三方库,用来提供python的后台程序。包含四个组件,分别是:

    1.triggers: 任务触发器组件,提供任务触发方式
    有三种可选

    • cron: 类似于linux下的crontab格式,属于定时调度
    • interval: 每隔多久调度一次
    • date: 一次性调度

    cron: 类linux下的crontab格式,属于定时调度
    interval:每隔多久调度一次
    date:一次性调度
    
    #1. cron风格
    (int|str) 表示参数既可以是int类型,也可以是str类型
    (datetime | str) 表示参数既可以是datetime类型,也可以是str类型
    year (int|str) – 4-digit year -(表示四位数的年份,如2008年)
    month (int|str) – month (1-12) -(表示取值范围为1-12月)
    day (int|str) – day of the (1-31) -(表示取值范围为1-31日)
    week (int|str) – ISO week (1-53) -(格里历2006年12月31日可以写成2006年-W52-7(扩展形式)或2006W527(紧凑形式))
    day_of_week (int|str) – number or name of weekday (0-6 or mon,tue,wed,thu,fri,sat,sun) - (表示一周中的第几天,既可以用0-6表示也可以用其英语缩写表示)
    hour (int|str) – hour (0-23) - (表示取值范围为0-23时)
    minute (int|str) – minute (0-59) - (表示取值范围为0-59分)
    second (int|str) – second (0-59) - (表示取值范围为0-59秒)
    start_date (datetime|str) – earliest possible date/time to trigger on (inclusive) - (表示开始时间)
    end_date (datetime|str) – latest possible date/time to trigger on (inclusive) - (表示结束时间)
    timezone (datetime.tzinfo|str) – time zone to use for the date/time calculations (defaults to scheduler timezone) -(表示时区取值)
    #如:在6,7,8,11,12月份的第三个星期五的00:00,01:00,02:00,03:00 执行该程序
    sched.add_job(my_job, 'cron', month='6-8,11-12', day='3rd fri', hour='0-3')
    
    #2.interval风格
    weeks (int) – number of weeks to wait
    days (int) – number of days to wait
    hours (int) – number of hours to wait
    minutes (int) – number of minutes to wait
    seconds (int) – number of seconds to wait
    start_date (datetime|str) – starting point for the interval calculation
    end_date (datetime|str) – latest possible date/time to trigger on
    timezone (datetime.tzinfo|str) – time zone to use for the date/time calculations
    #如:每隔2分钟执行一次
    scheduler.add_job(myfunc, 'interval', minutes=2)
    
    #3.date风格
    run_date (datetime|str) – the date/time to run the job at  -(任务开始的时间)
    timezone (datetime.tzinfo|str) – time zone for run_date if it doesn’t have one already
    #如:在2009年11月6号16时30分5秒时执行
    sched.add_job(my_job, 'date', run_date=datetime(2009, 11, 6, 16, 30, 5), args=['text'])

    2.job stores: 任务保存组件,提供任务保存方式

    • base
    • memory
    • mongodb

    scheduler.add_jobstore('mongodb', collection='example_jobs')

    • redis

    scheduler.add_jobstore('redis', jobs_key='example.jobs', run_times_key='example.run_times')

    • rethinkdb

    scheduler.add_jobstore('rethinkdb', database='apscheduler_example')

    • sqlalchemy

    scheduler.add_jobstore('sqlalchemy', url=url)

    • zookeeper

    scheduler.add_jobstore('zookeeper', path='/example_jobs')

    3.executors: 任务调度组件,提供任务调度方式

    • base
    • debug
    • gevent
    • pool(max_workers=10)
    • twisted

    4.schedulers: 任务调度组件,提供任务工作方式

    • BlockingScheduler:进程中只运行调度器时的方式
  • 相关阅读:
    [zz]std::vector,std::deque,std::list的区别的使用
    [zz]有关写c++代码的习惯
    [zz]Ubuntu linux 基本操作 双网卡双IP配置
    [zz]ZooKeeper 典型的应用场景
    [zz]Ubuntu配置双网卡
    java配置文件问题
    Struts2知识积累(2)_核心概念:拦截器
    【双旦献礼】PortalBasic Java Web 应用开发框架 v3.0.1 正式发布(源码、示例及文档)
    hibernate入门
    为Eclipse定制你自己的注释模板变量
  • 原文地址:https://www.cnblogs.com/sen-2017/p/13575962.html
Copyright © 2020-2023  润新知