Flask_apscheduler 实现定时任务demo

公司需要使用FLask执行一个定时任务,写了个demo供参考,理所当然只针对flask(废话- -),如果需要更详尽的使用方法请戳:APScheduler中文翻译

  • 主要工具:flask_apscheduler
  • 测试工具:postman

接下来上代码

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)

你可能感兴趣的:(Flask)