Tôi đang phát triển một ứng dụng Flask và tận dụng các bản thiết kế. Tôi dự định sử dụng hàng đợi công việc cần tây. Tôi cố gắng để hiểu được những lợi ích hoặc lý do để sử dụng một cái gì đó giống nhưChức năng nhà máy cần tây và nhập khẩu cần tây
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
và sau đó làm
celery = make_celery(app)
và nhập nó vào tasks.py của tôi so với chỉ nhập khẩu và tạo ra một trường hợp cần tây trong nhiệm vụ của tôi .py như
from celery import Celery
app = Celery('hello', broker='amqp://[email protected]//')
@app.task
def mytask():
Lợi thế - điều rất quan trọng nếu bạn đang sử dụng bản thiết kế - là bạn không phải lo lắng quá nhiều về thứ tự nhập khẩu và nhập khẩu vòng tròn. –
Có vấn đề gì với bối cảnh ứng dụng khi bạn không sử dụng cách make_celery không? – user982599