как удалить задачу из сельдерея с redis broker?

Я добавил некоторые неправильно task до celery с redis broker

но теперь я хочу удалить неправильный task и я не могу найти никакого способа сделать это

есть ли какие-то команды или какой-то api для этого ?

3 ответов


Я знаю два способа сделать так:

1) удалить очередь непосредственно от брокера. В твоем случае это редис. Есть две команды, которые могут помочь вам: llen (чтобы найти правую очередь) и дель (удалить).

2) Начните сельдерей рабочий с --purge или --отбросить параметры. Вот помощь:

--purge, --discard    Purges all waiting tasks before the daemon is started.
                      **WARNING**: This is unrecoverable, and the tasks will
                      be deleted from the messaging server.

У меня просто была эта проблема для будущих читателей,

http://celery.readthedocs.org/en/latest/faq.html#i-ve-purged-messages-but-there-are-still-messages-left-in-the-queue

таким образом, чтобы правильно очистить очередь задач ожидания вы должны остановить все рабочие!--9-->, а затем очистить задачи с помощью сельдерея.управление.чистка.)(


1. Чтобы правильно очистить очередь от ожидающих задач, вы должны остановить всех работников (http://celery.readthedocs.io/en/latest/faq.html#i-ve-purged-messages-but-there-are-still-messages-left-in-the-queue):

2 ... а затем очистите задачи от определенной очереди:

$ cd <source_dir
$ celery amqp queue.purge <queue name>

3. Начните рабочих снова