apscheduler的简单使用
APScheduler有四大组件:
1、触发器 triggers :
触发器包含调度逻辑。每个作业都有自己的触发器,用于确定下一个任务何时运行。除了初始配置之外,触发器是完全无状态的。
有三种内建的trigger:
(1)date: 特定的时间点触发
(2)interval: 固定时间间隔触发
(3)cron: 在特定时间周期性地触发
demo
from apscheduler.schedulers.blocking import BlockingScheduler
from apscheduler.events import EVENT_JOB_EXECUTED, EVENT_JOB_ERROR
import datetime
# 输出时间
def job(x):
print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), x)
def date_test(x):
print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), x)
print (1/0)
def my_listener(event):
if event.exception:
print ('任务出错了!!!!!!')
else:
print ('任务照常运行...')
if __name__ == '__main__':
scheduler = BlockingScheduler()
scheduler.add_job(job, args=('循环任务',), trigger='interval', seconds=1)
scheduler.add_job(func=date_test, args=('一次性任务,会出错',), trigger='interval', seconds=5) # next_run_time=datetime.datetime.now() + datetime.timedelta(seconds=5), id='date_task'
scheduler.add_listener(my_listener, EVENT_JOB_EXECUTED | EVENT_JOB_ERROR)
scheduler.start()