бд через flask-sqlalchemy. Но, если я создаю метод, который реализует эту логику в utils и вызывается уже целери таском, то мне нужен контекст приложения, как я понял, для использованися db=Sqlalchemy(). Как-то через блупринт корячиться? Примерно такая структура:
|——celery_tasks
├── init.py
├── tasks.py
└── utils.py
└── watch_dog
├── init.py
├── app_factory.py
├── extensions.py
└── models.py
|__run.py
Надеюсь, это не значит что мне щас надо курить, как уйти от фласк алхимии к обычной, я только что с докером просидел недели две, щас еще и это учить, Хотелось бы покодить логику
Если я правильно тебя понял, то тебе нужно def init_celery(app, celery): TaskBase = celery.Task class ContextTask(TaskBase): abstract = True def __call__(self, *args, **kwargs): with app.app_context(): return TaskBase.__call__(self, *args, **kwargs) celery.Task = ContextTask celery.conf.backend = app.config["CELERY_RESULT_BACKEND"], celery.conf.broker = app.config["CELERY_BROKER_URL"], return celery
Лучше уходить от фласк алхимии
Да в этом я был уверен после того, как замаялся с запуском первой фабрики) Но тут блин что бы заработало я сначала освоил докер, потом целери, а сейчас еще и с этим сношаться, прям деморализует)
Обсуждают сегодня