转载链接: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:进程中只运行调度器时的方式