У меня проблема с пониманием;У меня есть несколько клиентов, прослушивающих одну и ту же очередь, сообщение содержит идентификатор назначения клиента, все клиенты получили это сообщение, но когда этот идентификатор распознается конкретным клиентом, только в этом случае его следует удалить из очереди (ack),иначе должно остаться (ноак).Я пытался создать исключение на ICosumer, но оно не работает, я не понимаю, как это работает.
client = Bus.Factory.CreateUsingRabbitMq(cfg =>
{
cfg.AutoDelete = false;
cfg.Durable = true;
cfg.Exclusive = false;
var host = cfg.Host(new Uri($"rabbitmq://{hostname}:{port}"), h =>
{
h.Username(username);
h.Password(password);
});
cfg.Publish<MessageModel>(x => { x.ExchangeType = ExchangeType.Direct; });
cfg.ReceiveEndpoint(host, queueName, e =>
{
e.Consumer<MessageConsumer>();
});
});
client.Start();
потребитель:
internal class MessageConsumer : IConsumer<MessageModel>
{
Task IConsumer<MessageModel>.Consume(ConsumeContext<MessageModel> context)
{
throw new MessageNotConfirmedException();
}
}
Извините, если я пишувозможно дублирование, но я не нашел решений за многие дни.