如何通过 http api 获取 rabbitmq-shovel 的状态

How can I get the status of a rabbitmq-shovel by the 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'.

是的,您可以使用:

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