Конфигурация интервалов конечной точки — MassTransit.C#

Место общения программистов C#
Anonymous
Конфигурация интервалов конечной точки — MassTransit.

Сообщение Anonymous »

Я использую Masstransit 8 + amazon sqs/sns, приложение работает в контейнере Windows Docker.
Перечитав документацию по обработке исключений, я решил вместо этого использовать DelayedRedelivery UseMessageRetry для повторной попытки получения сообщений, поскольку он не блокирует потребителя, ожидая интервала попытки, а использует возможности очереди.
Оказывается, что необходимо быть осторожным с настройкой длительный интервал времени, так как это может быть плохой практикой, по крайней мере, для UseMessageRetry.
В моем коде я использую следующее ConsumerDefinition:

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

internal class MyConsumerDefinition : ConsumerDefinition
{
protected override void ConfigureConsumer(IReceiveEndpointConfigurator endpointConfigurator, IConsumerConfigurator consumerConfigurator, IRegistrationContext context)
{
endpointConfigurator.UseKillSwitch(options =>
{
options
.SetActivationThreshold(100)
.SetTripThreshold(0.2) // 20%
.SetRestartTimeout(TimeSpan.FromMinutes(5))
.SetExceptionFilter(configurator =>
{
configurator.Handle(typeof(SocketException), typeof(EndpointNotFoundException), typeof(TimeoutException), typeof(FaultException));
});
});

endpointConfigurator.UseDelayedRedelivery(r =>
{
r.Handle(typeof(SocketException), typeof(EndpointNotFoundException), typeof(TimeoutException), typeof(FaultException));

r.Interval(3, TimeSpan.FromMinutes(15));
});
}
}
Затем добавьте его в потребитель:

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

bus.AddConsumer(typeof(MyConsumerDefinition));
bus.AddConsumer();
bus.AddConsumer();
Поэтому у меня есть несколько вопросов, чтобы убедиться, что я правильно понимаю:
  • Что рекомендуется /max хороший интервал для параметров RestartTimeout в UseKillSwitch?
  • Для метода UseDelayedRedelivery можно установить интервал в 15 минут или это слишком долго?
  • Если Я применяю ConsumerDefinition только для MyConsumer, затем эти настройки автоматически применяются для других потребителей (OtherConsumer2, OtherConsumer3)?
Будем очень благодарны за любые рекомендации, спасибо.

Подробнее здесь: https://stackoverflow.com/questions/786 ... asstransit

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