私はこのようなタスクを持っています
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'
タスクから@my_custom_decoratorを削除した場合、またはこのようにタスクに明示的な名前を指定した場合、タスクは正常に登録されます(package + module + function)。
from mybasetask_module import MyBaseTask
@task(base=MyBaseTask, name='an_explicit_task_name')
@my_custom_decorator
def my_task(*args, **kwargs):
pass
この動作は予想されますか?複数のデコレータがあり、明示的なタスク名がない場合、最初のケースでタスクがデフォルトの自動登録名で登録されるように何かをする必要がありますか?
ありがとう、