Время ожидания сообщения NServiceBus с timeToReachQueue
Я пытаюсь установить тайм-аут для сообщения, чтобы прибыть в очередь, используя MSMQTransportProtocol в NServiceBus.
Я прочитал это: http://docs.particular.net/nservicebus/msmq/connection-strings и пытаюсь реализовать timeToReachQueue
собственность (из моего понимания).
Что я сделал, чтобы добавить TimeToReachQueue
Свойство для моего сообщения:
public class PlaceOrder : IMessage
{
[MessagingDescription("MsgTimeToReachQueue")]
public TimeSpan TimeToReachQueue { get; set; }
public Guid Id { get; set; }
public string Product { get; set; }
}
В клиенте, который отправляет сообщение, я поместил следующее в app.config
:
<connectionStrings>
<add name="NServiceBus/Transport"
connectionString="deadLetter=true;
journal=true;
useTransactionalQueues=true;
cacheSendConnection=true;
timeToReachQueue=01:01:01"/>
</connectionStrings>
Я пробовал разные значения меток времени - в основном я пытаюсь установить невозможное время прибытия сообщения - я намеренно хочу, чтобы оно истекло.
Но какое бы значение я ни указывал в строке подключения, похоже, оно не применяется. Сообщение всегда приходит успешно, и если я проверю timeToReachQueue
свойство в отладке, я вижу, что все значения равны нулю - не значение, которое я пытаюсь установить.
Я даже попробовал следующее в моем EndpointConfig:
configuration.UseTransport<MsmqTransport>().ConnectionStringName("NServiceBus/Transport");
Что мне здесь не хватает?
1 ответ
Я пытаюсь установить тайм-аут для сообщения, чтобы прибыть в очередь
Дело в том, что даже если сообщение поступит в очередь в течение этого периода времени (из-за проблем с сетью), оно вполне может оказаться в этой очереди в течение длительного времени (возможно, из-за сбоя кода обработки).
Я думаю, что TimeToBeReceived - это то, что вы ищете. Смотрите эту предыдущую тему:
Время установки NServiceBus для получения
О чем идет речь в документации, когда говорится This sets the underlying Message.TimeToReachQueue
это свойство TimeToReachQueue сообщения MSMQ (как описано в ссылке), а не свойство вашего собственного объекта сообщения.