烧瓶加时间表 [英] Flask plus Schedule

查看:58
本文介绍了烧瓶加时间表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将计划与我的Flask应用集成,因为我需要执行一些常规任务.我在此处找到了它,他使用线程在后台运行它.但是,当我在我的软件上尝试使用它时,无法使用Ctrl-C退出应用程序,而是使用Windows.我很快将其部署在Heroku上,怎么了?

Hi I want to integrate schedule with my Flask app since I would need to do some routinely tasks. I found it here that he used threading to run it on the background. However when I tried it on mine, I cannot exit my app using Ctrl-C, I am using Windows. I will soon deploy it on Heroku, what's wrong?

还有没有更好,更人性化"的时间表来为Flask做一些例行任务?谢谢.

Also is there any better and 'human-friendly' like schedule to do some routine task for Flask? Thanks.

这是我的代码:

from flask import Flask
from datetime import datetime
import gspread
from oauth2client.service_account import ServiceAccountCredentials
import mysql.connector
from mysql.connector import Error
import schedule
import time
from threading import Thread


app = Flask(__name__)

def job():
    print("I'm working...")

def run_schedule():
    while True:
        schedule.run_pending()
        time.sleep(1)


@app.route('/')
def homepage():
    return '<h1>Hello World!</h1>'


if __name__ == '__main__':
    schedule.every(5).seconds.do(job)
    sched_thread = Thread(target=run_schedule)
    sched_thread.start()
    app.run(debug=True, use_reloader=False)

推荐答案

尝试 APScheduler .它支持后台调度程序.

Try APScheduler. It supports background scheduler.

这里是示例代码,我将烧瓶与apscheduler一起使用.

Here's sample code I used flask with apscheduler.

from flask import Flask
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor

app = Flask(__name__)

executors = {
    'default': ThreadPoolExecutor(16),
    'processpool': ProcessPoolExecutor(4)
}

sched = BackgroundScheduler(timezone='Asia/Seoul', executors=executors)

def job():
    print('hi')

sched.add_job(job, 'interval', seconds=5)

if __name__ == '__main__':
    sched.start()
    app.run(debug=True, use_reloader=False)

这篇关于烧瓶加时间表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆