Прерывание выполняющейся задачи в Celery внутри django

Я хотел бы иметь возможность прервать задачу, которая выполняется из очереди Celery ( используя rabbitMQ). Я вызываю задачу, используя

task_id = AsyncBoot.apply_async(args=[name], name=name, connect_timeout=3)

, где AsyncBoot - это определенная задача.

Я могу получить идентификатор задачи (предполагая, что это длинная строка, возвращаемая apply_async ), и сохранить ее в базе данных, но я ' Я не знаю, как вызвать метод прерывания. Я вижу, как сделать методы прерываемыми с помощью класса Abortable tasks, но если у меня есть только строка идентификатора задачи, как мне вызвать .abort () для задачи? Спасибо.

6
задан Anon 26 August 2010 в 15:11
поделиться

1 ответ

Вы видели справочную документацию? http://celeryq.org/docs/reference/celery.contrib.abortable.html

Чтобы прервать задачу, используйте result.abort():

>>> result = AsyncBoot.apply_async(...)
>>> result.abort()
4
ответ дан 8 December 2019 в 17:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: