#python #celery #django-celery
#python #сельдерей #django-сельдерей
Вопрос:
Когда я создаю функциональную задачу, я могу сделать следующее, чтобы указать очередь:
@app.task(name='my_task', queue='my_queue')
def some_task():
return "hey"
Затем я могу вызвать эту задачу следующим образом: some_task.delay()
и она отправит задачу в my_queue
.
Однако, если у меня есть класс, который наследуется от celery.Task
класса, я должен указывать очередь каждый раз, когда я вызываю эту задачу:
class MyTask(Task):
def run(self):
return "Hey"
MyTask.apply_async(queue="my_queue")
Есть ли способ указать это в определении класса? Что-то вроде этого:
class MyTask(Task):
queue = 'my_queue'
def run(self):
return "Hey"
Я не могу найти способ сделать это в документации. Возможно ли это?
Ответ №1:
Оказывается, именно так вы бы это и сделали:
class MyTask(Task):
queue = 'my_queue'
def run(self):
return "Hey"