Я написал потребителя, используя MassTransit, и использовал Azure Service Bus в качестве транспорта.Что происходит, если закрытие потребителя? (MassTransit)
public async Task Consume(ConsumeContext<ISimpleRequest> context)
{
try
{
_log.InfoFormat("Strated working on {0}", context.Message.CustomerId);
Thread.Sleep(500);
_log.InfoFormat("Returning name for {0}", context.Message.CustomerId);
}
catch(Exception ex)
{
await context.Redeliver(TimeSpan.FromSeconds(1));
}
}
Я повторно отправляю сообщение другому потребителю, если исключение случается.
Но что произойдет, если автобус отправит сообщение, потребитель начнет работать над ним, и процесс будет закрыт? Как я могу не потерять сообщение?
http://docs.masstransit-project.com/ru/latest/usage/exceptions.html – stuartd
Потребление недостатков, которые вы имеете в виду? –
Ошибочные сообщения помещаются в очередь ошибок - _ "При конфигурации шины по умолчанию исключение попадает ... и сообщение перемещается в очередь _error (с префиксом имени очереди конечной точки приема). Сведения об исключении хранятся в виде заголовков с сообщение, для анализа и помочь в устранении неполадок исключения "_. Вы также можете использовать сообщение об ошибке, чтобы получать уведомление об ошибке, а не проверять очереди ошибок. – stuartd