Я использую Masstransit с RabbitMQ, log4net для ведения журнала, и все работает нормально. Но когда сервер RabbitMQ не работает, я заметил, что журнал заполнен ошибками:
ОШИБКА - RabbitMQ Connect не удалось: брокер недоступен: localhost: 5672 /
Но по-прежнему можно публиковать сообщения без ограничений. Похоже, такие сообщения отправляются, а затем исчезают.
Есть ли возможность создавать такие исключения и обрабатывать их вручную? Или я мог каким-то образом заставить метод Publish
выдать Exception
, если брокер не работает?
Ниже представлена настройка моей шины:
var busControl = Bus.Factory.CreateUsingRabbitMq(cfg =>
{
var host = cfg.Host(new Uri("rabbitmq://localhost/"), h =>
{ });
cfg.UseLog4Net();
cfg.ReceiveEndpoint("test-queue", ep =>
{
ep.StateMachineSaga(context.Resolve<ProductSaga>(),
context.Resolve<ILifetimeScope>());
if (ep is IRabbitMqReceiveEndpointConfigurator)
{
((IRabbitMqReceiveEndpointConfigurator)ep).PrefetchCount = 8;
}
ep.UseInMemoryOutbox();
});
});
.StartAsync()
в автобусе перед тем, как позвонить в publish? - person Chris Patterson   schedule 02.09.2019