Airflow планирует запуск задачи в понедельник до 15-го числа месяца

Можно ли запланировать запуск DAG воздушного потока в определенное время в понедельник непосредственно перед 15-м числом каждого месяца? Я думаю, что эта строка cron может это сделать, но я не уверен, что правильно понял

0 10 8-14 * MON

Поэтому я думаю, что это должно происходить в 10:00 в понедельник только между 8 и 14 числами каждого месяца. Поскольку между 8-м и 14-м числом может быть только один понедельник, он должен проводиться только один раз в месяц, и это будет понедельник, предшествующий 15-му числу.

Это верно?

Вы можете проверить расписание здесь: crontab.guru

tobi6 06.09.2018 14:23

@ tobi6 спасибо, я знаю об этой странице. Но он просто записывает строку cron словами, он не проверяет, соответствуют ли эти слова моей предполагаемой логике. Я просто хочу подтвердить, что это будет выполняться в понедельник до 15 числа каждого месяца. Есть ли какой-нибудь крайний случай, который я пропустил, когда он случайно запускается, например, дважды в месяц?

Dan 06.09.2018 17:04
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
2 962
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Модуль croniter (который Airflow использует для расчета даты / времени выполнения) поддерживает хэш-символ для поля дня недели, который позволит вам запланировать, что, как я считаю, будет работать, на второй понедельник каждого месяца.

Например, "30 7 * * 1#2" сообщает, что запускается каждый месяц в 7:30 утра, во второй понедельник. Используя этот код для проверки:

from croniter import croniter 
from datetime import datetime 
cron = croniter("30 7 * * 1#2") 
for i in range(10):
    print(cron.get_next(datetime))

дает:

datetime.datetime(2018, 10, 8, 7, 30)
datetime.datetime(2018, 11, 12, 7, 30)
datetime.datetime(2018, 12, 10, 7, 30)
datetime.datetime(2019, 1, 14, 7, 30)
datetime.datetime(2019, 2, 11, 7, 30)
datetime.datetime(2019, 3, 11, 7, 30)
datetime.datetime(2019, 4, 8, 7, 30)
datetime.datetime(2019, 5, 13, 7, 30)
datetime.datetime(2019, 6, 10, 7, 30)
datetime.datetime(2019, 7, 8, 7, 30)

Как вы составили даты тестирования?

Dan 13.09.2018 21:58

from croniter import croniter from datetime import datetime cron = croniter ("30 7 * * 1 # 2") print (cron.get_next (datetime)) # повторить

joebeeson 13.09.2018 21:59

Спасибо, используя ваш код croniter, я вижу, что он принимает мою строку cron между 8-м и 14-м ИЛИ в понедельник, в отличие от того, как я думал, как в И в понедельник. Так что я попробую ваш совет, используя #.

Dan 14.09.2018 00:37

Другие вопросы по теме