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:进程中只运行调度器时的方式
原文地址:https://www.cnblogs.com/sen-2017/p/13575962.html