Выражение Cron функции Azure для исключения определенного времени

#azure #cron #azure-functions

#azure #cron #azure-функции

Вопрос:

Я хочу выполнить очень простую работу cron для функции Azure. Я пишу функции в Visual Studio, и функции будут привязаны к заданию. В моем решении есть две разные функции Azure.

  1. Выполняется для каждого месяца. (Обновляет всю таблицу).
  2. Выполняется каждые пять минут. (Обновляет только записи объектов. Не исторические записи.)

Я ожидаю, что функции не должны блокировать друг друга. Таким образом, они не должны работать одновременно. Мои выражения cron для функций;

  • Функция 1: 0 0 0 1 * * (Проходит каждый месяц 1-го числа.)
  • Функция2: 0 */5 * * * * ( Запускает каждые пять минут)

Я не хочу запускать function2 каждый месяц, например, 01/01/2021 00:00:00. Как я могу исключить время из функции2?

Ответ №1:

Прямого способа сделать это нет.

В качестве обходного пути вы можете добавить if else блок кода в Function2. Например, в if block , вы можете определить, соответствует ли это времени 01/01/2021 00:00:00 . если да, то ничего не делайте. Если нет, то перейдите else block к выполнению вашей логики.

Как показано ниже:

 public static void Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer, ILogger log)
{
    var the_time = DateTime.Now;

    //if the date is the first day of a month, and time is 00:00:00
    if(the_time.Day==1 amp;amp; the_time.ToLongTimeString().Contains("00:00:00"))
    {
      //do nothing, don't write any code here.
    }
    else
   {
      //write your code logic here
   }

}
 

Комментарии:

1. Да, это способ справиться с этим. Поскольку нет способа определить как выражение cron напрямую, я должен выполнить это решение. Спасибо.