2016-10-14 13 views
0

У меня есть webjob, который запускается сообщениями очереди. Если задание становится слишком длинным, сообщение появляется в очереди, и новый экземпляр webjob запускается, потребляя одно и то же сообщение. Это не должно быть.Azure Queue - Reappearing messages

Как установить временной интервал, пока сообщение скрыто в очереди перед повторным появлением?

ответ

1

В сообщениях очереди Azure есть значение тайм-аута видимости (в секундах), которое вы можете установить программно в любое время, прежде чем сообщение снова станет видимым.

Вы не упомянули, что язык вы кодирования в, но с сырым REST API точки зрения, вам просто нужно сделать обновления сообщение операции (а PUT на сообщение очереди). Из документации:

https://myaccount.queue.core.windows.net/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> 

Via .net (C#):

var message = queue.GetMessage(); 

queue.UpdateMessage(message, 
    TimeSpan.FromSeconds(30), 
    MessageUpdateFields.Visibility); 

См here для деталей API вызова.

+0

Я кодирую в C# и используя компоненты AzureSDK. – BrilBroeder

+0

См. Мой обновленный ответ с помощью фрагмента C#. –

+0

Задает ли это сообщение невидимым в течение 30 секунд всякий раз, когда запущенный процесс захватывает сообщение из Q или делает его невидимым сейчас в течение следующих 30 секунд? – BrilBroeder

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

  • Нет связанных вопросов^_^