Очередь Azure - вновь появляющиеся сообщения
У меня есть веб-задание, которое запускается сообщениями очереди. Если задание становится слишком длинным, сообщение снова появляется в очереди, и запускается новый экземпляр веб-задания, потребляющий то же сообщение. Это не должно быть.
Как установить временной интервал, пока сообщение скрыто в очереди перед повторным появлением?
1 ответ
Решение
Сообщения Azure Queue имеют значение времени ожидания видимости (в секундах), которое вы можете установить программно в любое время до того, как сообщение снова станет видимым.
Вы не упомянули, на каком языке вы кодируете, но с точки зрения необработанного REST API вам просто нужно выполнить операцию обновления сообщения (PUT
в очереди сообщений). Из документации:
https://myaccount.queue.core.windows.net/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds>
Через.net (C#):
var message = queue.GetMessage();
queue.UpdateMessage(message,
TimeSpan.FromSeconds(30),
MessageUpdateFields.Visibility);
Смотрите здесь для деталей вызова API.