使用FLask执行一个定时任务,写了个demo供参考,理所当然只针对flask,如果需要更详尽的使用方法请戳:APScheduler中文翻译
主要工具:flask_apscheduler
接下来上代码
from flask import Flask, request
from flask_apscheduler import APScheduler # 主要插件
import datetime
app = Flask(__name__)
scheduler = APScheduler()
def task1(a, b):
print('mession1')
print(datetime.datetime.now())
def task2(a, b):
print('mession2')
print(datetime.datetime.now())
@app.route('/pause', methods=['POST'])
def pausetask(): # 暂停
data = request.form['id']
scheduler.pause_job(str(data))
return "Success!"
@app.route('/resume', methods=['POST'])
def resumetask(): # 恢复
data = request.form['id']
scheduler.resume_job(str(data))
return "Success!"
@app.route('/gettask', methods=['POST'])
def get_task(): # 获取
data = request.form['id']
jobs = scheduler.get_jobs()
print(jobs)
return '111'
@app.route('/remove_task', methods=['POST'])
def remove_task(): # 移除
data = request.form['id']
scheduler.remove_job(str(data))
return 111
@app.route('/addjob', methods=['GET', 'POST'])
def addtask():
data = request.form['id']
if data == '1':
scheduler.add_job(func=task1, id='1', args=(1, 2), trigger='cron', day_of_week='0-6', hour=18, minute=19,
second=10,
replace_existing=True)
# trigger='cron' 表示是一个定时任务
else:
scheduler.add_job(func=task2, id='2', args=(1, 2), trigger='interval', seconds=10,
replace_existing=True)
# trigger='interval' 表示是一个循环任务,每隔多久执行一次
return 'sucess'
if __name__ == '__main__':
scheduler.init_app(app=app)
scheduler.start()
app.run(debug=True, port=8080)