Как я могу получить статус rabbitmq-лопатой по HTTP API
Используя "rabbitmqctl eval 'rabbit_shovel_status:status().'" Я могу получить статус лопат на моем сервере rabbitmq.
Я активировал модули rabbitmq_shovel и rabbitmq_shovel_management.
Я создал несколько динамических лопат с помощью HTTP API, проблема в том, что я хочу получить состояние лопат с помощью HTTP API, но я не могу найти способ сделать это.
Есть ли способ сделать это с помощью HTTP API? Или я должен использовать 'rabbitmqctl eval ...'?
Я не хочу использовать rabbitmqctl, так как я хочу представить эти данные в своем собственном API, поэтому мое приложение должно иметь доступ к ним, без необходимости создавать exec.
2 ответа
Да, вы можете использовать:
http://localhost:15672/api/shovels
Вы должны установить: rabbitmq_shovel_management
В результате json, как:
[
{
"node":"rabbit@gabrieleMacBook",
"timestamp":"2015-06-02 15:34:27",
"name":"test",
"vhost":"/",
"type":"dynamic",
"state":"running",
"definition":{
"src-queue":"test",
"dest-queue":"test2"
},
"src_uri":"amqp://xxxxxxx",
"dest_uri":"amqp://xxxxxxx"
}
]
Если вы используете C#, вы можете использовать HareDu следующим образом:
var result = await _services.GetService<IBrokerObjectFactory>()
.GetAllShovels();
https://github.com/ahives/HareDu2/blob/master/docs/shovel-get.md