запускаю таск Celery. Этот таск в свою очередь запускает пачку тасков в chord. В каждом таске из пачки я проверяю, есть ли в редиске флаг на остановку выполнения, который я устанавливаю нажатием другой кнопки на веб-морде.
Получив этот флаг, я пытаюсь остановить следующими способами:
myceleryapp.control.revoke(self.request.id, terminate=True) - так я останавливаю один из пачки тасков в chord, а затем остальные из пачки пытаются выполнить и валят ошибку, что таск остановлен, и так продолжается, пока не обработаются все аргументы для каждого таска chord, хранящиеся в celery;
myceleryapp.control.revoke(parent_task_id) - передаю идентификатор родительского таска, но всё равно не останавливается выполнение.
Как всё же остановить это?
А программисты Celery тут есть?
Звучит жутенько
Обсуждают сегодня