Перенос нескольких запланированных задач Windows с виртуальной машины на одно веб-задание

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

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

Я хотел бы перенести это на веб-задания (или любое другое релевантное бессерверное приложение Azure), но я вижу, что это работает только так, это создание одного веб-задания для каждого запланированного задания. Это будет настоящей головной болью при внесении изменений в код и необходимости развертывания в 20-30 различных местах (по одному на каждое веб-задание).

Есть ли способ сделать это, который дает мне эквивалент нескольких задач расписания окон, запускающих один и тот же exe? Я думал, возможно, у меня есть файл settings.job с несколькими расписаниями, и каждое расписание имеет необязательные аргументы, но похоже, что это невозможно.

Это единственный способ создать отдельное веб-задание для каждой запланированной задачи, а затем скопировать код в каждый каталог веб-заданий, или мне не хватает более простого способа?

Спасибо за любую помощь в этом

Стив


person Steve B    schedule 28.04.2020    source источник


Ответы (1)


Примеры можно найти на https://github.com/Azure/azure-webjobs-sdk-samples/tree/master/BasicSamples может дать вам общее представление. Но из того, что вы сказали, я думаю, вы можете добавить различные запланированные триггеры (Таймер, Очередь) в Functions.cs, который добавил ваш консольный проект C #. Ознакомьтесь с этим кратким руководством а также в дополнение к обзору репо BasicSamples.

Что касается аргументов вашей задачи, я бы посмотрел на использование таблиц хранилища Azure и привяжите таблицу к вашему [TimerTrigger], чтобы получить данные аргумента, чтобы« функция »знала, что делать.

Вы можете опубликуйте свой проект как веб-задание, и каждый триггер в Functions.cs должен появиться в колонке веб-заданий службы приложений, в которой вы развернули.

person Ryan Hill - MSFT    schedule 29.04.2020
comment
Спасибо, что ответил на мой вопрос, Райан. Я пытался сделать это в конфигурации, но после прочтения ваших комментариев имеет смысл иметь несколько timertrigger в Function.cs - person Steve B; 01.05.2020