Azure WebJob внезапное завершение работы во время обработки
У меня есть непрерывная веб-работа Azure, для которой установлено значение "Всегда включено". Предполагается, что этот WebJob обрабатывает новые сообщения, добавляемые в очередь хранения.
Мне интересно, что если по какой-то причине WebJob перестал работать, когда он обрабатывал триггер очереди. Таким образом, я потеряю сообщение из очереди, и оно не перейдет в очередь отравления.
Как я могу обойти это?
1 ответ
Мне интересно, что если по какой-то причине WebJob перестал работать, когда он обрабатывал триггер очереди.
Во-первых, если WebJob
выйдет во время обработки сообщения, вам не нужно беспокоиться о поврежденных данных. Когда WebJob
доступ к сообщению для обработки, он будет скрывать сообщение в очереди в течение определенного времени. Если твой WebJob
Завершите работу во время обработки сообщения, через некоторое время сообщение снова станет доступным, и оно будет повторно захвачено и выполнено в соответствии с обновленным кодом. Подробную информацию можно найти в этом ответе.
Что касается вашего требования о получении уведомления, работа закрывается. Вы можете использовать Graceful Shutdown и слушать CancellationToken
Вы можете передать вам сработавшую функцию и оценить имущество IsCancellationRequired
значение, то вы могли бы обработать WebJob
закроется Вот пример кода о CancellationToken
,