'start_date': datetime (2020, 1, 1), time_zone = 'Asia / Singapore',
Если я хочу, чтобы отчет запускался каждую среду (SGT) 00:55 AM, я должен ввести '55 0 * * 3 ', но вместо этого я должен поставить в '55 0 * * 4 '. (Таким образом, время выполнения будет таким, как задумано, каждую среду 00:55 SGT)
Аналогичным образом, если я хочу, чтобы отчет запускался каждый месяц в первый день 3 AM SGT, я должен ввести 'schedule_interval =' 0 3 1 * * ', но затем он переносит его на ПОСЛЕДНИЙ день месяца 3:00 SGT.
Что происходит? Я понимаю, что время UT C на 8 часов раньше, но это все еще не объясняет этого, потому что они начинаются на 1 день ДО предполагаемого времени начала в SGT. Итак, для нижеприведенного (скопировано только в соответствующих частях) все среды выполнения DAG - среда, 00:55, SGT.
from airflow.operators.email_operator import EmailOperator
from airflow.contrib.hooks.ssh_hook import SSHHook
from airflow.contrib.operators.ssh_operator import SSHOperator
from datetime import datetime, timedelta
from airflow import DAG
import pendulum
default_args = {
'owner': 'fs', # Change to your group name
'depends_on_past': False,
'retries': 3,
'cathup': True,
'start_date': datetime(2020, 1, 1),
'retry_delay': timedelta(minutes=30),
# every Wednesday 0:55, so ga_flattening done for BR as well for Sunday
dag = DAG(
dag_id='SOMETHING',
default_args=default_args,
max_active_runs = 10, # max 10 DAGS running
schedule_interval= '55 0 * * 4', #this will be wednesday 00:55 AM, not sure why
time_zone='Asia/Singapore',
catchup=True)