使用Flask+APScheduler建立定時任務
阿新 • • 發佈:2021-01-08
本文章參考:
- https://www.cnblogs.com/huiwenhua/p/11310833.html
- https://segmentfault.com/a/1190000021245279
資料夾結構如下圖:
|—demo
| |—config.py
| |—hello.py
| |—login.html
config.py:
class config:
SCHEDULER_API_ENABLED = True
@staticmethod
def app_init(app):
pass
hello.py
from flask import Flask, redirect, url_for, request
from flask_apscheduler import APScheduler # 引入APScheduler
from config import config
flag = False
#任務配置類
class SchedulerConfig(object):
JOBS = [
{
'id': 'print_job', # 任務id
'func': '__main__:print_job', # 任務執行程式
'args': None , # 執行程式引數
'trigger': 'interval', # 任務執行型別,定時器
'seconds': 5, # 任務執行時間,單位秒
}
]
#定義任務執行程式
def print_job():
print("I'm a scheduler!")
flag = True
app = Flask(__name__)
@app.route('/success/<name>')
def success(name):
return 'welcome %s' % flag
@app. route('/login',methods = ['POST', 'GET'])
def login():
if request.method == 'POST':
user = request.form['nm']
return redirect(url_for('success',name = user))
else:
user = request.args.get('nm')
return redirect(url_for('success',name = user))
if __name__ == '__main__':
app.config.from_object(SchedulerConfig)
scheduler = APScheduler() # 例項化APScheduler
scheduler.init_app(app) # 把任務列表載入例項flask
scheduler.start() # 啟動任務計劃
app.run(debug = False)
login.html
<html>
<body>
<form action = "http://localhost:5000/login" method = "post">
<p>Enter Name:</p>
<p><input type = "text" name = "nm" /></p>
<p><input type = "submit" value = "submit" /></p>
</form>
</body>
</html>