有什么方法可以同步使用EasyNetQ从RabbitMQ消耗原始字节消息吗?如何使用EasyNetQ同步消耗来自RabbitMQ的原始字节消息?
我需要保证按顺序处理和确认来自未以EasyNetQ格式发布的系统的消息。我知道在单个线程的消费者运行,但IAdvancedBus
接口只提供了一个方法以消耗原料的消息:
IDisposable Consume(IQueue queue, Func<byte[], MessageProperties, MessageReceivedInfo, Task> onMessage);
的Task
返回类型意味着消费者是异步运行的回调,因此可以处理这些消息出来订单。
如果没有,更改代码以支持此任何想法?我会做的接口方法:
IDisposable Consume(IQueue queue, Action<byte[], MessageProperties, MessageReceivedInfo> onMessage);
和RabbitAdvancedBus
实现它,但我不知道在哪里的代码会去准确。
感谢您的考虑。当我说“更改方法签名”时,我的意思是在接口上添加一个方法,使其清楚地明确代码是同步执行的(然后在类中实现)。我收到了Google小组的回复(见我的回答) – Ralphie