Невозможно выполнить повторную доставку с задержкой.C#

Место общения программистов C#
Ответить
Anonymous
 Невозможно выполнить повторную доставку с задержкой.

Сообщение Anonymous »

В моем приложении, использующем MassTransit и RabbitMq, у меня есть следующая конфигурация, позволяющая повторить попытку сообщения 2 раза, а затем повторно доставить его через 30 секунд:

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

builder.Services.AddMassTransit(busCfg =>
{
busCfg.AddConsumers(assemblies: Assembly.GetEntryAssembly());

busCfg.AddConfigureEndpointsCallback((context, name, cfg) =>
{
cfg.UseDelayedRedelivery(r => r.Intervals(TimeSpan.FromSeconds(30)));
cfg.UseMessageRetry(r => r.Immediate(2));
});

busCfg.UsingRabbitMq((context, cfg) =>
{
cfg.ConfigureEndpoints(context);
});
});
И потребитель, выдающий исключение:

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

public class MyMessageConsumerConsumer : IConsumer
{
private readonly ILogger _logger;

public MyMessageConsumerConsumer(ILogger logger) => _logger = logger;

public Task Consume(ConsumeContext context)
{
_logger.LogInformation("Consumed by MyMessageConsumerConsumer!");

throw new NotImplementedException();
}
}
Я отправляю такое сообщение:

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

  var msg = new MyMessage() { MyProperty = "Test" };

await _publishEndpoint.Publish(msg);
Я ожидал, что повторная доставка произойдет через 30 секунд, но после первых трех попыток потребитель вызывается снова немедленно и на неопределенный срок!
Что случилось?

Подробнее здесь: https://stackoverflow.com/questions/791 ... with-delay
Ответить

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

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

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

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

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