RabbitMq Rpc:EventingBasicConsumer或QueueingBasicConsumer

RabbitMq Rpc:EventingBasicConsumer或QueueingBasicConsumer,rabbitmq,rpc,amqp,Rabbitmq,Rpc,Amqp,这些方法非常简单,但我注意到,在中,开发人员选择使用线程阻塞调用consumer.Queue.Dequeue(),而不是使用EventingBasicConsumer和其他地方使用的事件处理模型 通过调查,有人说 从3.5.0版开始,应用程序回调处理程序可以调用阻塞操作(例如IModel.QueueDeclare或IModel.BasicCancel)用户回调是同时调用的 其中as(第1.5.0节)规定不支持 应用程序回调处理程序不得调用阻塞AMQP操作(例如 IModel.QueueDecla

这些方法非常简单,但我注意到,在中,开发人员选择使用线程阻塞调用
consumer.Queue.Dequeue()
,而不是使用
EventingBasicConsumer
和其他地方使用的事件处理模型

通过调查,有人说

从3.5.0版开始,应用程序回调处理程序可以调用阻塞操作(例如
IModel.QueueDeclare
IModel.BasicCancel
)<代码>用户回调是同时调用的

其中as(第1.5.0节)规定不支持

应用程序回调处理程序不得调用阻塞AMQP操作(例如
IModel.QueueDeclare
IModel.BasicCancel
)。如果这样做,通道将死锁。[…]因此,
QueueingBasicConsumer
是订阅队列最安全的方式


可能是RPC示例尚未更新吗?还是我遗漏了什么?我非常希望您能为我提供一些有关这方面的文档。

您是对的,没有必要使用
QueueingBasicConsumer
。 RabbitMQ教程repo中有关于这方面的内容

我已经发送了,它被合并了,希望文档能很快更新