Задание функции Azure, которое никогда не будет выполнено - PullRequest
0 голосов
/ 12 июня 2019

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

Я прошел этот вопрос SO /5137899/zadanie-cron-kotoroe-nikogda-ne-budet-vypolneno

Нокаждое выражение в этом вопросе дает исключение Microsoft.Azure.WebJobs.Host: Error indexing method 'Cleanup'. Microsoft.Azure.WebJobs.Extensions: The schedule expression '0 0 5 31 2 ?' was not recognized as a valid cron expression or timespan string.

Каковы возможные выражения, которые оправдают вышеупомянутое ожидание в отношении функций Azure?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 12 июня 2019

Проверьте выражение Azure CRON , это:

{second} {minute} {hour} {day} {month} {day-of-week}

И использует библиотеку NCronTab для интерпретации выражений CRON. На странице github вы можете найти столбец значений, который может содержать * или список элементов, разделенных запятыми. Это означает, что он не поддерживает ?.

Так что просто измените ваше выражение на 0 0 5 31 2 *, оно будет утверждено И если вы не выполняете свою функцию, вы можете просто отключить ее. Вы можете обратиться к этому руководству: Как отключить функции в функциях Azure .

Обновление:

В связи с тем, что функция рассчитает таймер, чтобы получить время выполнения функции, а 2/30 и 2/31 никогда не наступят, тогда это будет в цикле расчета, и год будет увеличиваться до предела 9999. В В этой ситуации функция отправит исключение.

1 голос
/ 12 июня 2019

Основной формат, используемый для запланированного WebJob

  • Выражение cron состоит из 6 полей: {секунда} {минута} {час} {день} {месяц} {день недели}.
  • Поддерживаемые операторы:, - * /
  • Каждое поле может иметь определенное значение (1), диапазон (1-10), набор значения (1,2,3), все значения (), значение интервала (/ 2 == 0,2,4,6, ...) или их смесь (1,5-10).
  • Каждое значение представляет момент времени, например: "5 * * * * *" - означает на 5-й секунде каждой минуты -> 00:00:05, 00:01:05, 00:02:05, ... (и не каждые 5 секунд).

следовательно, согласно вышеприведенным правилам ваше выражение cron приведет к этой ошибке

вместо использования 0 0 5 31 2 ? используйте 0 0 5 31 2 *

...