Планирование вызовов API flask с помощью заданий cron

0

Вопрос

У меня есть функция, которая вызывает несколько API и обновляет базу данных при вызове. Я хочу запланировать выполнение функции ежедневно в определенное время.

Уже пробовал flask_apscheduler и APScheduler, которые выдают эту ошибку:

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

Любые зацепки по этому поводу будут полезны.

api apscheduler cron flask
2021-11-16 07:42:09
1

Лучший ответ

0

Вы должны:

  • Опубликуйте код, в котором вы определяете применение колбы.
  • Укажите, как вы пытаетесь получить доступ к приложению.
  • Как вы вызываете API.
  • Независимо от того, являются ли эти API сторонними или частью вашего проекта.

Однако, вероятно, это вопрос контекста. Я уже сталкивался с подобным в SQLAlchemy раньше. Вам нужно будет каким-то образом получить доступ к вашему приложению, либо используя app_context, либо импортировав current_app из колбы и доступ к конфигурации.

  1. Предполагая, что вы импортировали приложение, в котором используется ваша функция, попробуйте это:

    with app.app_context():
        # call your function here
    

    Обратитесь к этому документу для получения дополнительной информации: Документация по колбе

  2. Другой подход, который вы можете попробовать, - это передача конфигураций вашего приложения через объект класса конфигурации.
    Вы можете определить задания, которые хотите запланировать, и передать ссылку на свою функцию внутри.
    Проверьте этот пример из репозитория flask-apscheduler на GitHub.

2021-11-19 13:46:07

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................