Триггер очереди функций Azure: как установить задержку для сообщения в очереди - PullRequest
0 голосов
/ 27 января 2019

У меня есть функция Azure, которая прослушивает очередь Azure и, например, что-то не так.Он снова добавляет сообщение в очередь.Но через 5 раз сообщение будет перемещено в очередь отравления.

Я хочу повторно добавить сообщение в очередь с задержкой.Например, повторите через 1 час.Потому что моя функция Azure работает с внешним ресурсом, который сейчас может быть недоступен.Я не хочу делать 5 попыток в течение 10 секунд вообще, я хочу повторить попытку через 1 час.Конечно, я пишу свою собственную реализацию, но, вероятно, эта функция уже существует.

1 Ответ

0 голосов
/ 28 января 2019

@ 4c74356b41 указал верный путь. host.json настройки очереди - это то, что вы ищете.

visibilityTimeout is Интервал времени между повторными попытками при сбое обработки сообщения maxDequeueCount - Количество попытокобработка сообщения перед его перемещением в очередь отравления.

{
    "version": "2.0",
    "extensions": {
        "queues": {
            "visibilityTimeout" : "01:00:00",
            "maxDequeueCount": 2
        }
    }
}

Если ваша функция v1, аналогично

{
    "queues": {
      "visibilityTimeout" : "01:00:00",
      "maxDequeueCount": 2
    }
}

Обновление

Поскольку проблема в основном заключается в изменении visibilityTimeout в соответствии с конкретной ситуацией, установка задержки CloudQueue.AddMessageAsync соответственно является единственным способом.На самом деле visibilityTimeout делает то же самое, но на уровне приложения функций (все очереди), поэтому нам не нужно настаивать на этом в этом случае.

...