Пожалуйста, дайте мне знать, если я ошибаюсь, но я пришел к следующему выводу:
- Вы не можете добавить такое регулярное выражение в секцию cron файла yaml - однако я не уверен в этом. Я просто не мог понять, как это сделать, и не нашел примеров в Интернете или документации Azure, где они используют регулярные выражения в файле yaml в разделе cron.
- Если вы посмотрите в моих правках я пытался сделать
cron 0 */312 * * *
, и в соответствии с https://crontab.guru/#0_ / 312_ _ _ он говорит: «В каждую минуту после каждого 312-й час. », Но часы индексируются круглосуточно, а cron не имеет состояния (он ничего не знает о предыдущих выполнениях, о времени, которое он выполнил, провалились они или нет и т. Д. c.), Поэтому он никогда не достигнет 312-й час, поскольку часы действительны в зависимости от часов. Он не предоставляет синтаксическую ошибку, он просто выполняется каждые 24 часа. Если вы хотите проверить это, я предлагаю вам сделать следующее:
touch /home/user/Desktop/everyminute.log
crontab -e
Добавьте в конец строки следующее:
*/1 * * * * echo "tick $(/bin/date)" >> /home/user/Desktop/everyminute.log
*/61 * * * * echo "tack $(/bin/date)" >> /home/user/Desktop/everyminute.log
*/100 * * * * echo "tock $(/bin/date)" >> /home/user/Desktop/everyminute.log
и затем выполните tail -f /home/user/Desktop/everyminute.log
. Вы увидите, как каждый тик тик со временем, а когда час прошел, вы увидите тик, тэк и ток одновременно (через час), что подтверждает тот факт, что он проиндексирован на 60 ( когда минут) и я предполагаю то же самое в часах.
Итак, я закончил взломом. Я добавляю:
cron 0 13 * * 0
в файл yaml, который запускается каждую неделю в воскресенье, и в моем фактическом bash скрипте, который выполняется в конвейере, я добавил
if [ $(($(date +%V) % 2)) -eq 0 ]
в строке 1, чтобы проверить, четна ли неделя или странный. Таким образом, конвейер по-прежнему выполняется каждую неделю (для его запуска требуется практически ноль ресурсов), но он выполняет задание, только если неделя четная. Кстати, это также означает, что это каждый 14-й день, а не каждый 13-й день, но я тоже мог бы это использовать.