Мой тестовый код на данный момент выглядит так (псевдокод — опущены детали синхронизации и т. д.):
Код: Выделить всё
var bus = RabbitHutch.CreateBus("host=localhost");
var consumer = bus.Advanced.Consume(queue, (body, properties, info) =>
{
MessageHandler(body, properties, info);
});
// ...
static void MessageHandler(ReadOnlyMemory content, MessageProperties props, MessageReceivedInfo info)
{
messageBatch.Add((content, info));
if (messageBatch.Count >= 100)
// trigger another thread to do batch processing
}
NB. Пакетное использование сообщений RabbitMQ и подтверждение их всех одновременно решает этот вопрос для RabbitMQ.Client, но я хотел бы знать, возможно ли это в клиенте EasyNetQ.
Подробнее здесь: https://stackoverflow.com/questions/793 ... t-possible