Где находится документация Microsoft по запущенным в очереди веб-заданиям Azure, которые работают непрерывно, не прерывая и не прерывая работу? - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь понять, как установка Azure WebJob, запускаемая в очереди, должна непрерывно работать в облаке без прерывания из-за истечения времени ожидания.

Идея веб-задания, запускаемого в очереди, заключается в том, что оно будет выполняться непрерывно, а затем ваша функция будет срабатывать при добавлении нового элемента в очередь.

В действительности это работает так, что если в данный момент ничего не выполняется, и ничего не добавляется в очередь в течение 120 секунд (это настраивается), ваша веб-работа полностью прекратит работу и прекратит прослушивание добавляемых элементов. в очередь. Для перезапуска потребуется вмешательство.

Microsoft предоставила несколько полезную и довольно устаревшую документацию для веб-заданий и рисует радужную картину того, как ее создать в C #.

(Да, я включил "Всегда включено" в службе приложений)

Я могу настроить период времени на 2 часа, 24 часа и т. Д., Но это не является пуленепробиваемым. Какова реальная рекомендация Microsoft запустить запущенное веб-задание, не отключая его и не прерывая работу?

Фактический веб-сервер Always On не требует перезапуска узла службы после простоя. Я не ожидаю ничего меньшего от веб-работы.

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

1 Ответ

0 голосов
/ 25 июня 2019

Мое решение заключается в том, что развертывает веб-задания Azure как непрерывный тип с помощью файла .zip .И у него такой проблемы нет.

Сначала создайте консольный проект ядра .net и установите все необходимые пакеты nuget -> напишите свою функцию запуска очереди в Function.cs-> add appsettings.json, поместите свойстрока подключения к нему (обратите внимание, что вам также нужно щелкнуть правой кнопкой мыши appsettings.json -> выбрать Свойства -> установить «Копировать в выходной каталог» на «копировать, если новее»).

Затем я публикую проект-> в Visual Studio щелкните правой кнопкой мыши свой проект -> выберите «Опубликовать» -> в новом окне выберите «Папка», а также выберите путь (вы можете сохранить путь по умолчанию), затем нажмите кнопку «Опубликовать»:

enter image description here

После завершения публикации вы можете перейти к пути, который вы определили на предыдущем шаге (по умолчанию путь выглядит следующим образом: webjob222\bin\Release\netcoreapp2.1\publish)

enter image description here

Создайте файл run.cmd и запишите что-то вроде dotnet your_webjob_name.dll в run.cmd ->, а затем отправьте все файлы здесь в файл .zip.

Перейдите на портал Azure -> ваше веб-приложение -> яВ левом блейде выберите webjobs -> add, загрузите ZIP-файл и установите тип как Continuous.

enter image description here

После создания веб-заданийВы можете сделать свой тест.На моей стороне он работает нормально, таких ошибок нет (я оставил веб-задания простаивающими примерно на 45 минут, затем добавил сообщение очереди, он работает нормально).Вот журнал веб-заданий:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...