Настойка плюс расписание - PullRequest
       11

Настойка плюс расписание

0 голосов
/ 28 августа 2018

Привет, я хочу интегрировать расписание с моим приложением Flask, так как мне нужно было бы выполнять некоторые повседневные задачи. здесь я обнаружил, что он использовал многопоточность для запуска в фоновом режиме. Однако, когда я попробовал его на себе, я не могу выйти из приложения с помощью Ctrl-C, я использую Windows. Я скоро разверну его на Heroku, что не так?

Также есть ли какое-нибудь лучшее и «дружественное человеку» расписание, чтобы выполнить какое-то рутинное задание для Flask? Спасибо.

Вот мой код:

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)

1 Ответ

0 голосов
/ 29 августа 2018

Попробуйте 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...