Почему я получаю «Работа вне контекста запроса» для планировщика? - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть приложение фляги, которое использует apis поставщика для подключения к своему серверу и получения специфических данных пользователя. Аутентификация происходит через apikey / token.

Все мои маршруты определены в файле views.py, и приложение запускается из run.py

У меня есть требование запланировать / выполнить функцию взаранее определенное время. Как этого добиться? Куда помещать планировщики?

Я пытался выполнить расписание и фоновое расписание, но получил ошибку

RuntimeError: Работа вне контекста запроса.

Это обычно означает, что вы пыталисьиспользовать функциональность, которая требовала активного HTTP-запроса. Обратитесь к документации по тестированию для получения информации о том, как избежать этой проблемы.

run.py выглядит примерно так:

from apscheduler.schedulers.background import BackgroundScheduler

import views as cc

def auto():
    cc.end_of_day()

sched = BackgroundScheduler(daemon=True)
sched.add_job(auto, 'interval', minutes=2)
sched.start()

app = Flask(__name__)

if __name__ == "__main__":
    app.run()
...