在 EasyNetQ 中为请求/响应模式声明具有特定名称的响应队列

Declare response queue with specific name for Request/Response pattern in EasyNetQ

提问人:gerard 提问时间:9/6/2017 更新时间:3/31/2021 访问量:1026

问:

在 EasyNetQ 中使用请求/响应消息传递模式时,我需要在请求队列上发送消息之前声明一个私有响应队列(具有特定名称)?

我假设框架在后台声明响应队列,但我如何为这个响应队列指定一个特定的名称?

我在 https://github.com/EasyNetQ/EasyNetQ/wiki/Request-Response 的文档中没有看到任何有关此的信息

EasyNetQ的

评论


答:

1赞 Wiebe Tijsma 9/7/2017 #1

这是命名约定的默认实现:https://github.com/EasyNetQ/EasyNetQ/blob/develop/Source/EasyNetQ/Conventions.cs

所以也许你可以尝试这样的事情:

bus.Advanced.Conventions.RpcReturnQueueNamingConvention = () => "MyReturnQueue";
0赞 deng jie 3/31/2021 #2

在最新的 EasyNetQ 中,是只读的,无法设置bus.Advanced.Conventions.RpcReturnQueueNamingConvention

也许您可以在使用 RPC 方法时设置队列名称,例如

bus.Rpc.Respond<RequestMsg, RepsonseMsg>(request => {//...},x=>x.WithQueueName("your queue name"));

var msg = bus.Rpc.Request<RequestMsg, RepsonseMsg>(request, x => x.WithQueueName("your queue name"));