Как добавить задачу сельдерея в начало очереди? - PullRequest
0 голосов
/ 23 апреля 2019

Я использую сельдерей для выполнения некоторых задач, все задачи, добавленные .apply_async и мой скрипт делают это автоматически, зависит от некоторых внешних условий.Я хочу получить результат задач не в прямом порядке, а в обратном порядке.

Например, я добавляю task1 после этого task2 и после этого task3 , и я хочу, чтобы сельдерей выполнял задачи в следующем порядке: task1 , task3 , task2 .( task1 сначала, потому что сельдерей будет выполнять эту задачу после того, как я добавлю ее и, прежде чем я добавлю task2 , все в порядке),

Как я могу получить такое поведение?

PS Я использую Redis в качестве брокера.

1 Ответ

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

Описанное поведение невозможно или, по крайней мере, не в полной мере. Кроме того, это в основном зависит от выбранного брокера. По сути, вы хотите, чтобы очередь работала в режиме LIFO, однако это не относится к большинству брокеров сообщений. По крайней мере, RabbitMQ работает только в режиме FIFO. С RabbitMQ вы можете частично достичь своей цели с приоритетами , но, как уже было сказано, это не пуленепробиваемо и потребует дополнительной логики.

...