使用http请求器从mule 3中的rabbitMQ队列中清除消息

发布于 2025-01-11 10:59:15 字数 472 浏览 1 评论 0原文

我的要求是在处理流程或发布队列中的任何内容之前清除队列中的所有消息(不是删除队列,只是从队列中清除消息)。我们正在使用rabbitMQ,由于某种原因,消息被困在队列中,因此,当我们根据消息对队列进行计数时,我们遇到了一些问题。因此,在下次处理之前,我们必须清除队列。这里我们有多个队列,如slave1、slave2、slave3,当api在进程部分被触发时,我们必须清除队列。 Mule 3 有一个通用的 AMQP 连接器,所以我认为我们必须使用 http 请求器来做同样的事情。

请帮助获取 HTTP API 连接到rabbitMQ 并进行清除。我浏览过一些论坛,但没有得到明确的想法。 怎么做我使用 CLI 删除单个队列中的所有消息?

My requirement is to clear all the messages from queue(not delete the queue only purge the messages from queue) before processing the flow or publishing anything in the queue. We are using rabbitMQ and due to some reason messages are stucked in the queue and because of that we are facing some issue when we are counting the queue based on the messages. so for the next time before processing we have to clear the queue. Here we have multiple queue like slave1, slave2,slave3 and when api will be triggered in the process section we have to clear the queue.
Mule 3 has a generic AMQP connector so i think we have to use http requester to do the same.

Kindly help to get the HTTP API to connect to rabbitMQ and do the purging. I have gone through some forum but not getting the clear idea. How do I delete all messages from a single queue using the CLI?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

白况 2025-01-18 10:59:15

如果我理解正确的话,您需要帮助来实现与前面的答案中使用curl执行的相同的HTTP请求,但使用Mule 3。

答案显示了如何使用 RabbitMQ 管理插件的 REST API删除队列的内容:

curl -i -u guest:guest -XDELETE http://localhost:15672/api/queues/vhost_name/queue_name/contents

在 Mule 3 中,等效的内容是:

<http:request-config name="HTTP_Request_Configuration" host="httpbin.org" port="80" doc:name="HTTP Request Configuration" >
        <http:basic-authentication username="${user}" password="${password}"/>
</http:request-config>
<flow name="deleteQueueFlow">
    <http:request method="DELETE" doc:name="Request" config-ref="HTTP_Request_configuration" path="/api/queues/${vhostname}/${queuename}/contents"/>
</flow>

If I understand correctly you need help to implement the same HTTP request that is performed using curl in the previous answers, but using Mule 3.

The answer shows how to use RabbitMQ management plugin's REST API to delete the contents of a queue:

curl -i -u guest:guest -XDELETE http://localhost:15672/api/queues/vhost_name/queue_name/contents

In Mule 3 something equivalent would be:

<http:request-config name="HTTP_Request_Configuration" host="httpbin.org" port="80" doc:name="HTTP Request Configuration" >
        <http:basic-authentication username="${user}" password="${password}"/>
</http:request-config>
<flow name="deleteQueueFlow">
    <http:request method="DELETE" doc:name="Request" config-ref="HTTP_Request_configuration" path="/api/queues/${vhostname}/${queuename}/contents"/>
</flow>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文