Я использую триггер очереди функций Azure для чтения сообщения очереди и обработки работы в Python. У меня параметр batchSize
установлен в 1
, чтобы ограничить параллелизм. В коде Python у меня есть дополнительная проверка, чтобы увидеть, готова ли работа к обработке, как в:
if work is ready:
do_work()
else:
dequeue the message and try again
Я хочу удалить сообщение из очереди, если работа не готова к обработке, и повторить попытку через одну минуту. Думаю, я смогу повторить попытку, просто установив visibilityTimeout
на 00:01:00
. Но как лучше всего удалить сообщение из очереди? Было бы просто:
if work is ready:
do_work()
else:
raise Exception("work is not ready, dequeue the message")
Позволит ли это удалить сообщение из очереди и принять его для повторной попытки в течение одной минуты? Этот вариант использования довольно редок, и мне интересно, есть ли лучший способ, потому что я не уверен, хочу ли я видеть ошибку в своих журналах для этого случая.
Изменить: можно ли использовать initialVisibilityDelay
в моем Python QueueTrigger? Это избавило бы меня от необходимости генерировать исключение, если бы я мог задержать отображение своих сообщений на одну минуту.