#azure #cron #azure-functions
#azure #cron #azure-функции
Вопрос:
Я хочу выполнить очень простую работу cron для функции Azure. Я пишу функции в Visual Studio, и функции будут привязаны к заданию. В моем решении есть две разные функции Azure.
- Выполняется для каждого месяца. (Обновляет всю таблицу).
- Выполняется каждые пять минут. (Обновляет только записи объектов. Не исторические записи.)
Я ожидаю, что функции не должны блокировать друг друга. Таким образом, они не должны работать одновременно. Мои выражения 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 напрямую, я должен выполнить это решение. Спасибо.