Очередь 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.

Другие вопросы по тегам