Как я могу полностью и полностью предотвратить повторные попытки с использованием MassTransit и RabbitMQ?C#

Место общения программистов C#
Anonymous
Как я могу полностью и полностью предотвратить повторные попытки с использованием MassTransit и RabbitMQ?

Сообщение Anonymous »

У меня есть микросервис с использованием MassTransit для обработки сообщений из очереди RabbitMQ. Однако у меня возникает проблема, когда при ошибке MassTransit повторно обрабатывает сообщение, и/или сообщение остается в очереди.

Код: Выделить всё

/* inside the configuration method */

services.AddMassTransit(scbc =>
{
/* ... */

scbc.UsingRabbitMq((context, rmbfc) =>
{
/* ... */

rmbfc.UseMessageRetry(r => {
r.Immediate(0);
r.Handle();
r.None();
});
rmbfc.UseDelayedRedelivery( r => {
r.Immediate(0);
r.Handle();
r.None();
});
rmbfc.UseRetry(r => {
r.Immediate(0);
r.Handle();
r.None();
});
rmbfc.ReceiveEndpoint(r => {
r.DiscardFaultedMessages();
r.DiscardSkippedMessages();
});
});
});

Как вы можете видеть, я активирую практически каждую настройку, которая, кажется, будет предотвратить повторные извлечения, (документация абсолютно ужасна,), и все же мой микросервис сохраняет более мереинику Обработка () и почти все остальные настройки, которые кажется актуальным.
Как я могу это сделать? Это кажется достаточно простым: я не могу быть первым человеком в мире, ищет политику повторения «не повторно ничего». предложение вокруг всего тела метода моего потребителя и поймайте каждую ошибку, делая ручную ведение журнала/телеметрию ошибки, а не полагаться на MassTransit's. Затем я установил тайм -аут на MassTransit, который короче, чем время потребительского тайм -аута на Rabbitmq.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... d-rabbitmq

Вернуться в «C#»