Получить список задач в очереди в сельдерее - PullRequest
120 голосов
/ 05 апреля 2011

Как я могу получить список задач в очереди, которые еще предстоит обработать?

Ответы [ 12 ]

0 голосов
/ 10 апреля 2019

Запустить цветок - просмотр селери задач

celery -A app.celery flower

и затем открыть в браузере

localhost:5555
0 голосов
/ 14 октября 2018

Если вы управляете кодом задач, вы можете обойти проблему, позволяя задаче тривиально повторить попытку при первом ее выполнении, а затем отметив inspect().reserved(). Повторная попытка регистрирует задачу с помощью обработчика результатов, и сельдерей может это увидеть. Задача должна принять self или context в качестве первого параметра, чтобы мы могли получить доступ к количеству повторов.

@task(bind=True)
def mytask(self):
    if self.request.retries == 0:
        raise self.retry(exc=MyTrivialError(), countdown=1)
    ...

Это решение не зависит от брокера, т.е. вам не нужно беспокоиться о том, используете ли вы RabbitMQ или Redis для хранения задач.

РЕДАКТИРОВАТЬ: после тестирования я обнаружил, что это только частичное решение. Размер зарезервированного ограничен настройкой предварительной выборки для работника.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...