flask定时框架flask_apscheduler的使用
触发设置
当你开始定时任务时,需要为定时策略选择一个触发器(设置 class Config 中 trigger 的值)。flask_apscheduler 提供了三种类型的触发器。
"""
date 一次性指定固定时间,只执行一次
interval 间隔调度,隔多长时间执行一次
cron 指定相对时间执行,比如:每月1号、每星期一执行
"""
# date 最基本的一种调度,指定固定时间,只执行一次
# run_date(str)– 精确时间
class Config(object):
JOBS = [
{
'id': 'job1',
'func': '__main__:job1',
'args': (1, 2),
'trigger': 'date', # 指定任务触发器 date
'run_date': '2020-7-23 16:50:00' # 指定时间 2020-7-23 16:50:00 执行
}
]
SCHEDULER_API_ENABLED = True
"""
interval 通过设置 时间间隔 来运行定时任务
weeks (int) – 间隔几周
days (int) – 间隔几天
hours (int) – 间隔几小时
minutes (int) – 间隔几分钟
seconds (int) – 间隔多少秒
start_date (datetime|str) – 开始日期
end_date (datetime|str) – 结束日期
"""
class Config(object):
JOBS = [
{
'id': 'job1',
'func': '__main__:job1',
'args': (1, 2),
'trigger': 'interval', # 指定任务触发器 interval
'hours': 5 # 每间隔5h执行
}
]
SCHEDULER_API_ENABLED = True
"""
cron 通过设置 相对时间 来运行定时任务
year (int|str) – 年,4位数字
month (int|str) – 月 (范围1-12)
day (int|str) – 日 (范围1-31)
week (int|str) – 周 (范围1-53)
day_of_week (int|str) – 周内第几天或者星期几 (范围0-6 或者 mon,tue,wed,thu,fri,sat,sun)
hour (int|str) – 时 (范围0-23)
minute (int|str) – 分 (范围0-59)
second (int|str) – 秒 (范围0-59)
start_date (datetime|str) – 最早开始日期(包含)
end_date (datetime|str) – 最晚结束时间(包含)
"""
class Config(object):
JOBS = [
{
'id': 'job1',
'func': '__main__:job1',
'args': (1, 2),
'trigger': 'cron', # 指定任务触发器 cron
'day_of_week': 'mon-fri', # 每周1至周5早上6点执行
'hour': 6,
'minute': 00
}
]
SCHEDULER_API_ENABLED = True
附带crontab时间设置
以下是 crontab 文件的格式:
{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
o minute: 区间为 0 – 59
o hour: 区间为0 – 23
o day-of-month: 区间为0 – 31
o month: 区间为1 – 12. 1 是1月. 12是12月.
o Day-of-week: 区间为0 – 7. 周日可以是0或7.