Create timed tasks using Flask+APScheduler

References for this article:

  1. https://www.cnblogs.com/huiwenhua/p/11310833.html
  2. https://segmentfault.com/a/1190000021245279

The folder structure is as follows:
|—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>

Guess you like

Origin blog.csdn.net/weixin_44133327/article/details/112310816