RabbitMQ: Как удалить / переместить сообщения в очереди из curl

У меня несколько серверов RabbitMQ.

Мне нужен интерфейс (с JSP), где я могу управлять (удалять очереди / обмены / сообщения) всеми этими серверами.

Внутри я буду вызывать команды curl для выполнения операций.

Пример: создать очередь

curl -i -u test:test -H "content-type:application/json" \
    -XPUT -d'{"type":"direct","durable":true}' \
    http://192.168.0.30:15672/api/queues/%2f/myQueue

Как я могу удалить / переместить сообщения в очереди с помощью curl?


person Anil Kumar    schedule 12.08.2015    source источник
comment
Вероятно, тот же вопрос, что и здесь: groups.google.com/d/ msg / rabbitmq-users / IS-3v4qNduw / oPseA7VxEgAJ с ответом в нашем списке рассылки   -  person old_sound    schedule 17.08.2015
comment
@old_sound. Да .. Это тот же вопрос, и там есть ответ.   -  person Anil Kumar    schedule 19.08.2015


Ответы (3)


лопата, созданная из завитка, сделает всю работу:

curl 
-u  "user:password" 
-vvv 'http://localhost:15672/api/parameters/shovel/%2Foms/Move%20from%20sourceQueue' 
-X PUT 
-H 'content-type: application/json' 
--data-binary '
{
    "component": "shovel",
    "vhost": "/vhost",
    "name": "Move from sourceQueue",
    "value": {
        "src-uri": "amqp:///%2Fvhost",
        "src-queue": "sourceQueue",
        "src-protocol": "amqp091",
        "src-prefetch-count": 1000,
        "src-delete-after": "queue-length",
        "dest-protocol": "amqp091",
        "dest-uri": "amqp:///%2Fvhost",
        "dest-add-forward-headers": false,
        "ack-mode": "on-confirm",
        "dest-queue": "destQueue"
    }
}
' --compressed
person Lho Ben    schedule 22.11.2019
comment
Мне пришлось поставить URL-адрес в конец на MacOS. - person BorisS; 24.01.2020

Ответ на мой вопрос находится на

https://groups.google.com/d/msg/rabbitmq-users/IS-3v4qNduw/oPseA7VxEgAJ

person Anil Kumar    schedule 19.08.2015
comment
Процитирую подсказку из списка рассылки ниже - возможно, вам следует использовать динамическую лопату, которую вы можете установить через http API. - person asgs; 18.05.2020

RabbitMQ не имеет концепции прямого удаления сообщений из очереди. Есть много разных способов сделать эквивалент «удаления» или «перемещения» сообщений из очереди при использовании RabbitMQ. Каждый из этих вариантов доступен вам через REST api. Вы можете потреблять сообщения вне очереди или удалять сообщения из очереди с истекшим сроком действия.

Получать сообщения из очереди довольно просто, и есть примеры здесь. Чтобы использовать истечение срока через время жизни или размер очереди, вы можете настроить политику RabbitMQ. Документация для политик RabbitMQ находится здесь.

person joshuad2    schedule 12.08.2015