Вы можете позвонить other_task.delay()
изнутри Randomer.run
;в этом случае вы можете установить Randomer.ignore_result = True
(и other_task.ignore_result
, и т. д.).
Помните, что задания сельдерея delay
возвращаются мгновенно, поэтому, если вы не установили лимит или время ожиданияна вложенных вызовах (или рекурсивных вызовах) вы можете довольно быстро достичь расплавления.
Вместо рекурсивных или вложенных задач вы должны рассмотреть бесконечный цикл, чтобы избежать переполнения стека (без каламбура).
from celery.task import Task
class Randomer(Task):
def run(self, **kwargs):
while True:
do_something(**kwargs)
time.sleep(600)