Python中apscheduler定时任务、延迟执行任务
参考链接
pip install apscheduler
可以实现定时任务、以及延迟执行任务
的效果
APScheduler 有三种内建的 trigger:
1)date 触发器
date 是最基本的一种调度,作业任务只会执行一次。它表示特定的时间点触发。
2)interval 触发器
固定时间间隔触发。interval 间隔调度
3)cron 触发器
在特定时间周期性地触发
flask中使用
from flask import Flask, request
from apscheduler.schedulers.background import BackgroundScheduler
import time
app = Flask(__name__)
scheduler = BackgroundScheduler()
scheduler.start()
def delayed_task(task_name,num):
time.sleep(5)
print("延迟执行任务"+task_name+num)
@app.route('/', methods=['GET'])
def hello():
scheduler.add_job(delayed_task, 'date',args=["my_task"],kwargs={'num': "1"}) # 添加任务到调度器
return "Hello, World!"
if __name__ == '__main__':
app.run(host='127.0.0.1', port=5000)
修饰器使用
import time
from apscheduler.schedulers.blocking import BlockingScheduler
scheduler = BlockingScheduler()
@scheduler.scheduled_job('interval', seconds=5)
def job1():
t = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
print('job1 --- {}'.format(t))
@scheduler.scheduled_job('cron', second='*/7')
def job2():
t = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
print('job2 --- {}'.format(t))
scheduler.start()
'''
运行结果:
job2 --- 2019-08-29 22:36:35
job1 --- 2019-08-29 22:36:37
job2 --- 2019-08-29 22:36:42
job1 --- 2019-08-29 22:36:42
job1 --- 2019-08-29 22:36:47
job2 --- 2019-08-29 22:36:49
'''
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 刘哥还在学