2012-05-26 2 views
1

У меня есть существующее приложение, которое отправляет сообщения от одного процесса другому через очередь транспорта. Я хотел бы изменить, как обрабатываются сообщения, задерживая их, когда они обрабатываются, и очередь будет действовать скорее как очередь приоритетов с сообщением, которое должно выполняться сначала в верхней части очереди.Задержка вызова очереди сообщений?

И.Е.:

В момент времени 0 сообщений A посылается в очередь с задержкой в ​​15 минут. 5 минут спустя Сообщение B отправляется в очередь с задержкой 10 минут. Служба, обрабатывающая очередь, затем выходит из строя и не перезапускается еще на 15 минут. Когда очередь снова начинает обработку, сообщение B будет сверху, а затем сообщение A.

Есть ли что-нибудь подобное в экосистеме C#/MSMQ/.NET?

+0

Сообщения MSMQ могут присваиваться приоритету при отправке, который соблюдается при получении времени. http://stackoverflow.com/questions/1310414/getting-message-by-priority-from-msmq –

+0

Если это не сбой, будет ли сообщение A обрабатываться первым? –

+0

Я не просто хочу приоритет, но я в основном хочу сделать симуляцию. Это сообщение не будет обрабатываться в течение 30 минут, но оно не будет обработано мгновенно, если другие сообщения с более высоким приоритетом недоступны. –

ответ

1

Если вы работаете с облачным программированием на Windows Azure, есть способ справиться с этим. Просто укажите visibilitytimeout, чтобы отправить сообщение.

От http://msdn.microsoft.com/en-us/library/windowsazure/dd179346.aspx:

VisibilityTimeout =

Дополнительно. Если указано, запрос должен быть выполнен с использованием x-ms-версии 2011-08-18 или новее. Если не указано, значение по умолчанию равно 0. Задает новое значение таймаута видимости в секундах относительно времени сервера. Новое значение должно быть больше или равно 0 и не может превышать 7 дней. Тайм-аут видимости сообщения не может быть установлен на значение позже времени истечения. visibilitytimeout должно быть установлено на значение, меньшее значения времени жизни.

Дополнительный тайм-аут видимости указывает время, в течение которого сообщение будет невидимым. По истечении времени ожидания сообщение станет видимым. Если тайм-аут видимости не указан, используется значение по умолчанию 0.

Смежные вопросы