У меня есть задача, которая выглядит так:
from mybasetask_module import MyBaseTask
@task(base=MyBaseTask)
@my_custom_decorator
def my_task(*args, **kwargs):
pass
и моя базовая задача выглядит так:
from celery import task, Task
class MyBaseTask(Task):
abstract = True
default_retry_delay = 10
max_retries = 3
acks_late = True
Проблема, с которой я сталкиваюсь, заключается в том, что работник сельдерея регистрирует задание с именем
'mybasetask_module.__inner'
Задача - registerd fine (которая является пакетом + модуль + функция), когда я удаляю @my_custom_decorator из задачи или если я предоставляю явное имя для задачи, подобной этой
from mybasetask_module import MyBaseTask
@task(base=MyBaseTask, name='an_explicit_task_name')
@my_custom_decorator
def my_task(*args, **kwargs):
pass
Ожидается ли такое поведение? Нужно ли мне что-то делать, чтобы мои задачи регистрировались с автоматически зарегистрированным именем по умолчанию в первом случае, когда у меня есть несколько декораторов, но нет явного имени задачи?
Благодаря,