Странное поведение атрибута `delete-after` у Dynami c shovel - PullRequest
1 голос
/ 27 мая 2020

Я изучал плагин лопаты для перемещения сообщений из источника во временные очереди как часть более крупного варианта использования. Я создавал лопату Dynami c для каждой очереди, чтобы переместить сообщения во временную очередь и удалить лопату Dynami c, используя атрибут "delete-after": "queue-length" . Я видел в консоли управления RabbitMQ (Admin-> Shovel status), что лопата Dynami c была успешно удалена, но состояние исходных / временных очередей было запущено.

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

Примечание:

  1. Исходная и временная обе очереди являются долговечными.
  2. Сообщения постоянны (режим доставки: 2)
  3. Указанная операция выполнялась параллельно, как и там сотни очередей. Я создал динамическую c лопату для каждой очереди и удалил их.

Queue status after deleting dynamic shovel Пока я удаляю динамическую c лопату, используя вместо этого DELETE HTTP API описанного выше подхода, он работает отлично. Я хочу избежать дополнительных HTTP-вызовов, поскольку количество исходных очередей составляет сотни.

1 Ответ

0 голосов
/ 03 июня 2020
Атрибут

delete-after устарел и переименован в sr c -delete-after long back. RMQ v3.7.x имеет поддержку атрибута delete-after, но он был удален в v3.8.x (до 3). Затем он был возвращен в v3.8.4

https://github.com/rabbitmq/rabbitmq-shovel/issues/72

Благодаря Michael

...