繁体   English   中英

Masstransit RabbitMq请求/响应无法创建自动删除交换

[英]Masstransit RabbitMq Request/Response cannot create auto-delete exchange

我们正在尝试实现一个请求/响应方案,在该方案中,将删除服务器(消费者)已关闭的消息。 我们从在兔子mq安装中没有任何交换/队列开始。

有一个服务器会创建自己的交换/队列,我们​​希望它是auto-delete=true

如果服务器在客户端之前启动,则使用正确的配置创建交换。 但是当客户端启动时,会出现以下错误:

RabbitMQ.Client.Exceptions.OperationInterruptedException:AMQP操作被中断:AMQP关闭原因,由对等方发起,代码= 406,文本=“ PRECONDITION_FAILED-不等价的arg'auto_delete',用于在虚拟主机'****'中交换'simple_request' :收到“ false”,但当前为“ true””,classId = 40,methodId = 10,cause =

如果客户端先启动,然后尝试发送消息,则会使用我们定义的队列名称创建一个交换,但不会auto-delete=true ,这会导致错误:

RabbitMQ接收传输失败:AMQP操作被中断:AMQP关闭原因,由对等方发起,代码= 406,文本=“ PRECONDITION_FAILED-不等价的arg'auto_delete',用于在虚拟主机'****'中交换'simple_request':收到' true',但当前为'false'“,classId = 40,methodId = 10,cause = RabbitMQ接收传输失败:主管正在停止,无法创建其他范围

服务器最终启动的时间。

如何在请求响应场景中实现自动删除队列?

您可以在客户端中为服务队列更新URI,以包括查询字符串参数,以便正确创建队列。

rabbitmq://host/vhost/queue?autodelete=true&durable=false

请注意,我包含了durable=false但这仅在您使用非持久队列且我想完成时才这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM