参考链接
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
'''