Zajmuję się tworzeniem aplikacji Flask i wykorzystaniem schematów. Planuję używać kolejek zadań selera. Próbuję zrozumieć korzyści lub powód do korzystania cośFunkcja fabryki selerów a importowanie selera
def make_celery(app):
celery = Celery(app.import_name, broker=app.config['CELERY_BROKER_URL'])
celery.conf.update(app.config)
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
return celery
a następnie robi
celery = make_celery(app)
i importowanie go na mój tasks.py versus tylko importowanie i tworzenie instancji seler w moich zadań .py jak
from celery import Celery
app = Celery('hello', broker='amqp://[email protected]//')
@app.task
def mytask():
Zaletą - która jest bardzo ważna w przypadku korzystania ze schematów - jest to, że nie musisz martwić się zbytnio o kolejność importu i importowanie okrężne. –
Czy występują problemy z kontekstem aplikacji, gdy nie używasz sposobu make_celery? – user982599