Запланированный WebJob не вызывает функцию, как запланировано - PullRequest
0 голосов
/ 07 ноября 2018

Я новичок в концепции Azure Webjob. Я пытаюсь создать WebJob, который будет запущен.

Program.cs

static void Main()
{
    var config = new JobHostConfiguration();

    if (config.IsDevelopment)
    {
        config.UseDevelopmentSettings();
    }

    var host = new JobHost(config);
    host.Call(typeof(Functions).GetMethod("MyMethod"));
    host.RunAndBlock();

}

Function.cs

[NoAutomaticTrigger]
public static void MyMethod()
{
   //Logic
}

Я вижу, что My WebJob работает, но вызывает эту функцию только в самом начале развертывания. Я могу запустить функцию с помощью журнала вызовов функций.

Если я не ошибаюсь, она должна вызывать функцию, как я запланировал, верно?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Вы запускаете задание при запуске с этой строкой host.RunAndBlock();

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

Например

{
  "schedule": "0 0 * * * *"
}

Тогда в вашей программе .cs, просто используйте

using (var host = new JobHost(config))
{
    host.Call(typeof(Functions).GetMethod("MyMethod"));
}

Разверните код, не забудьте скопировать settings.job в выходной каталог, и параметр cron должен быть визуальным в представлении веб-задания вашего приложения с портала

0 голосов
/ 07 ноября 2018

Если я не ошибаюсь, она должна вызывать функцию, как я запланировал, верно?

Какой график? Вы не настроили расписание. Единственное, что вы делаете, это вызываете MyMethod один раз (получая метод с использованием отражения!), А затем вы вызываете RunAndBlock для host.

Посмотрите на Запуск фоновых задач с веб-заданиями в службе приложений Azure> Создание запланированного веб-задания

Вы можете взглянуть на Функции Azure . Это тоже может помочь.

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