Как я могу полностью предотвратить повторные попытки с помощью 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();
});
});
});
Как вы можете видеть, я активирую практически все мыслимые настройки, которые, кажется, предотвращают повторные попытки (документация ужасно ужасна), и тем не менее мой микросервис продолжает весело повторять попытки.
Я перепробовал почти все комбинации None(), Ignore() и Handle() и почти все остальные настройки, которые кажутся актуально.
Как это сделать? Это кажется достаточно простым: я не могу быть первым человеком в мире, который ищет политику повторных попыток «ничего не повторять».

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

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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