Flask 定时任务Flask-APScheduler

1 安装Flask-APScheduler 

Flask 定时任务Flask-APScheduler_第1张图片

 2.定时任务配置 aps.py

class Aps(object):
    JOBS = [
        {
            'id': 'job1',
            'func': '__main__:job_1',
            'args': (1, 2),
            'trigger': 'cron',
            'hour': 17,
            'minute': 8
        },
        {
            'id': 'job2',
            'func': '__main__:job_1',
            'args': (3, 4),
            'trigger': 'interval',
            'seconds': 5
        }
    ]


def job_1(a, b):   # 一个函数,用来做定时任务的任务。
    print(str(a)+' '+str(b))

3. app应用

# -*-coding:utf-8-*-

from flask import Flask, request, make_response
from flask_apscheduler import APScheduler

from crawler.aps import Aps

app = Flask(__name__)
app.config.from_object(Aps())  # 为实例化的flask引入配置


@app.route('/', methods=["POST", "GET"])
def hello():
    return "hello"


if __name__ == '__main__':
    #  --host=0.0.0.0 --port=9008
    # 1.10
    scheduler = APScheduler()  # 实例化APScheduler
    scheduler.init_app(app)  # 把任务列表放进flask
    scheduler.start()  # 启动任务列表
    app.run(host="0.0.0.0", port=9008, debug=True, use_reloader=False)

4.启动

(1)定时任务不执行,放在main下,gunicorn启动的时候不会执行这里面的代码,放在main方法外即可执行。

# -*-coding:utf-8-*-
from apscheduler.schedulers.background import BackgroundScheduler
from flask import Flask, request, make_response

app = Flask(__name__)
# scheduler = APScheduler()  # 实例化APScheduler daemon
scheduler = BackgroundScheduler()   # 后台运行


@app.route('/', methods=["POST", "GET"])
def hello():
    return "hello"

def job_func():
    print('44444444')


# 定时任务
# 每隔2分钟执行
scheduler.add_job(func=job_func, id='job1', trigger='interval', minutes=2)

# 11点-15点 每隔20分钟执行)
scheduler.add_job(func=job_func, id='job2', trigger='cron',
                  hour='11-15', minute='*/20')

# 每日13点30分执行
scheduler.add_job(func=job_func, id='job3', trigger='cron', hour=13, minute=30, )

# scheduler.init_app(app)  # APScheduler 把任务列表放进flask
scheduler.start()  # 启动任务列表

if __name__ == '__main__':
    #  --host=0.0.0.0 --port=9008
    app.run(host="0.0.0.0", port=9008, debug=True, use_reloader=False)

参考:

【Flask】gunicorn和flask启动apscheduler不执行的问题和重复执行的bug_10相濡以沫-CSDN博客

flask实现定时执行任务(Flask-APScheduler)_"灼灼其华"的博客-CSDN博客_flask 定时任务

python3+flask 开发web(九)——flask_apscheduler定时任务框架_测试媛-CSDN博客

flask实现定时执行任务(Flask-APScheduler)_"灼灼其华"的博客-CSDN博客_flask 定时任务

Gunicorn 部署 Flask-Apscheduler 之踩坑记录 - chen2020 的回帖 - 链滴

你可能感兴趣的:(python算法,flask,python)