Я пытаюсь использовать методы класса в качестве задач django-celery, помечая их с помощью декоратора @task. Та же самая ситуация описана здесь , на вопрос Ананда Джейахара. Это примерно так
class A:
@task
def foo(self, bar):
...
def main():
a = A()
...
# what i need
a.foo.delay(bar) # executes as celery task
a.foo(bar) # executes locally
Проблема в том, что даже если я использую такой экземпляр класса a.foo.delay (bar)
, он говорит, что foo
требует как минимум двух аргументов, которые означает, что указатель self
не работает.
Дополнительная информация:
run ()
, используя некоторый аргумент в качестве ключа для выбора метода, но это не совсем то, что мне нужно. self
методам меняет способ выполнения методов не как сельдерея, а как обычные методы (т. Е. Во время тестирования) Спасибо за вашу помощь!