Есть ли способ синхронно использовать необработанные байтовые сообщения из RabbitMQ с помощью EasyNetQ?
Мне нужно гарантировать упорядоченную обработку и подтверждение сообщений, поступающих из системы, которая не публикуется в формате EasyNetQ. Я знаю, что потребитель работает в одном потоке, но интерфейс IAdvancedBus
предлагает только один метод для использования необработанных сообщений:
IDisposable Consume(IQueue queue, Func<byte[], MessageProperties, MessageReceivedInfo, Task> onMessage);
Тип возврата Task
означает, что потребитель выполняет обратный вызов асинхронно и, следовательно, может обрабатывать сообщения не по порядку.
Если нет, есть идеи по изменению кода для поддержки этого? Я бы сделал способ интерфейса:
IDisposable Consume(IQueue queue, Action<byte[], MessageProperties, MessageReceivedInfo> onMessage);
и реализовать его в RabbitAdvancedBus
, но я не уверен, куда именно пойдет код.