У меня есть приложение Flask, которое является очень простым приложением с обработчиком POST и некоторыми вставками DB. Вставки DB устанавливаются как задачи с использованием Celery. Если я установил определение и определение экземпляра Celery в файле tasks.py
и вызовет функции из моего файла main.py
(который также имеет создание приложения Flask), я получаю out of context error
. Задачи в файле tasks.py
в свою очередь вызывают класс DB, который выполняет вставки БД. Как правильно создать экземпляр Celery и убедиться, что он имеет контекст Flask?В флеш-приложении, где должен быть создан экземпляр Сельдерея?
Это как структура примерно напоминает: создание
- main.py = колба приложение, маршруты обработки и tasks.delay вызовов.
- tasks.py = Создание экземпляра Celery и определения задач.
- DB = Вставки.
Я хочу, чтобы все работало в одном контексте.
Эти ссылки помогли мне Http: //blog.miguelgrinberg. com/post/using-celery-with-flask & http://blog.miguelgrinberg.com/post/celery-and-the-flask-application-factory-pattern –