Как настроить Azure WebJob для запуска каждые 15 минут
Добрый день, друзья, я хотел бы сообщить вам, что я бразилец, поэтому я хотел бы извиниться за мой английский.
У меня есть лазурная веб-работа, и я хочу, чтобы она запускалась каждые 15 минут.
Я развертываю свою веб-работу с помощью Visual Studio, и у меня уже есть файл settings.job. Моя проблема в том, что когда я настраиваюсь на запуск каждые три минуты, он работает отлично, но когда я настраиваю его на запуск каждые пятнадцать минут, он работает только минут 0,15,30,45.
Я надеюсь, ты сумел понять меня
Вот как мой файл settings.job:
{ "schedule": "* */15 * * * *" }
2 ответа
Семантика выражений cron заключается в том, что они являются абсолютными по времени. Итак, когда у вас есть 0 */15 * * * *
, это означает, что он запускается ровно через 0 минут после часа, через 15 минут и т. д. Не существует способа запустить его с произвольного времени.
Вы писали, когда я настраивался на запуск каждые три минуты, он отлично работает, но поведение должно быть таким же: 0, 3, 6, 9, ...
Кроме того, обратите внимание, что ваше выражение cron не совсем корректно. Вместо * */15 * * * *
должно быть 0 */15 * * * *
, В противном случае он будет работать каждую секунду в течение целой минуты, каждые 15 минут.
Таким образом, выражение CRON состоит из шести полей -> {second} {minute} {hour} {day} {month} {day of the week}
Таким образом, чтобы запускать работу каждые 15 минут, это должно быть что-то вроде -> 0 */15 * * * *
Вот ссылка: https://docs.microsoft.com/en-us/azure/app-service/web-sites-create-web-jobs
Надеюсь это поможет!
Вы также можете использовать выражение TimeSpan, которое мне кажется довольно простым для понимания:
public async static Task SomethingAsync(TimerTrigger("00:15:00", RunOnStartup = true, UseMonitor = true)] TimerInfo timer)
Где "00:15:00" - "каждые 15 минут", как TimeSpan.FromMinutes(15).ToString()
говорит.
Для этого необходимо использовать Microsoft.Azure.WebJobs.Extensions NuGet, который необходимо соблюдать, чтобы соответствовать вашей версии Microsoft.Azure.WebJobs.