apscheduler 入门教程
安装
pip install apscheduler
ApScheduler 四种组件
- trigger(触发器)
- job stores(作业存储)
- executors(执行器)
- schedulers(调度器)
trigger
触发器类型 | 概述 | 参数 |
---|
date | 指定时间运行一次(一次性任务) | run_date |
interval | 固定时间间隔运行(循环任务) | weeks days hours minutes seconds start_date end_date timezone |
cron | 某个赶时间定期运行(定时任务) | year month day week day_of_week hour minute second start_date end_date timezone |
参数 | 值域 | 实例 |
---|
run_date | datetime or 字符(YYYY-MM-DD HH-mm-ss) | ‘2018-08-21 11:22:00’ |
year | 4位整数 | 2018 |
month | 1-12 | 1 |
day | 1-31 | |
week | 1-53 | |
day_of_week | 0-6 or mon,tue,wed,thu,fri,sat,sun | |
hour | 0-23 | |
minute | 0-59 | |
second | 0-59 | |
start_date | datetime or 字符(YYYY-MM-DD HH-mm-ss) | |
end_date | datetime or 字符(YYYY-MM-DD HH-mm-ss) | |
timezone | datetime.tzinfo | str |
weeks | 整数(int) | |
days | 整数(int) | |
hours | 整数(int) | |
minutes | 整数(int) | |
seconds | 整数(int) | |
from apscheduler.schedulers.blocking import BlockingScheduler
import datetime
def sched_test(x):
print datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), x
scheduler = BlockingScheduler()
scheduler.add_job(func=sched_test, args=('你好',), trigger='cron', second='*/5')
scheduler.add_job(func=sched_test, args=('你好',), trigger='interval', seconds=5)
scheduler.add_job(func=sched_test, args=('你好',), trigger='cron', minute='*/5')
scheduler.add_job(func=sched_test, args=('你好',), trigger='interval', minutes=5)
scheduler.add_job(func=sched_test, args=('你好',), trigger='cron', hour='9-12, 14-16', second='*/5')
scheduler.add_job(func=sched_test, args=('你好',), trigger='cron', hour='9-12, 14-16', minute='30-40', second='*/5')
scheduler.add_job(func=sched_test, args=('你好',), trigger='interval', seconds=5, start_date='2018-08-21 11:00:00', end_date='2018-08-21 12:00:00')
scheduler.start()
job stores
executors
schedulers