Azure WebJob внезапное завершение работы во время обработки

У меня есть непрерывная веб-работа Azure, для которой установлено значение "Всегда включено". Предполагается, что этот WebJob обрабатывает новые сообщения, добавляемые в очередь хранения.

Мне интересно, что если по какой-то причине WebJob перестал работать, когда он обрабатывал триггер очереди. Таким образом, я потеряю сообщение из очереди, и оно не перейдет в очередь отравления.

Как я могу обойти это?

1 ответ

Решение

Мне интересно, что если по какой-то причине WebJob перестал работать, когда он обрабатывал триггер очереди.

Во-первых, если WebJob выйдет во время обработки сообщения, вам не нужно беспокоиться о поврежденных данных. Когда WebJob доступ к сообщению для обработки, он будет скрывать сообщение в очереди в течение определенного времени. Если твой WebJob Завершите работу во время обработки сообщения, через некоторое время сообщение снова станет доступным, и оно будет повторно захвачено и выполнено в соответствии с обновленным кодом. Подробную информацию можно найти в этом ответе.

Что касается вашего требования о получении уведомления, работа закрывается. Вы можете использовать Graceful Shutdown и слушать CancellationToken Вы можете передать вам сработавшую функцию и оценить имущество IsCancellationRequired значение, то вы могли бы обработать WebJob закроется Вот пример кода о CancellationToken,

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