2017-11-13 3 views
2

私はダグを実行しようとしていますが、これは一度だけ実行する必要があります。だから私はダグの実行間隔を '@ once'にしました。このリンクで述べたようにしかし、私はエラーを取得しています - https://issues.apache.org/jira/browse/AIRFLOW-14001か月の特定の時刻を実行するようにダグをスケジュールする方法。つまり一度だけ

以下のように今、私は実行の正確な日付を渡すためにしようとしている:

:これは、ようなエラーを投げている

default_args = { 
'owner': 'airflow', 
'depends_on_past': False, 
'start_date': datetime(2017,11,13), 
'email': ['[email protected]'], 
'email_on_failure': False, 
'email_on_retry': False, 
'retries': 1, 
'retry_delay': timedelta(seconds=5) 
} 

dag = DAG(
    dag_id='dagNameTest', default_args=default_args, schedule_interval='12 09 13 11 2017',concurrency=1) 

File "/usr/lib/python2.7/site-packages/croniter/croniter.py", line 543, in expand 
expr_format)) 
CroniterBadCronError: [12 09 13 11 2017] is not acceptable, out of range 

誰かがこれを解決するのに役立つことができます。

おかげで、 アルジュン

答えて

0

あなたがスポット "曜日" に2017を持っています。試してください12 09 13 11 *。フィールド「schedule interval」に「日付」を設定しようとしています。技術的には、これは1年に1回のスケジュールです。この方法で実行できます。終了したら、DAGを無効にします。

0

必要な分、時間、日、月、および曜日の年の間隔を設定します。 I. 12 09 13 11 *。その日の前後にそれぞれDAGのstart_dateend_dateを設定してください。その時点で1回だけ実行する必要があります。

default_args = { 
'owner': 'airflow', 
'depends_on_past': False, 
'start_date': datetime(2017,1,1), 
'end_date': datetime(2017,12,31), 
'email': ['[email protected]'], 
'email_on_failure': False, 
'email_on_retry': False, 
'retries': 1, 
'retry_delay': timedelta(seconds=5) 
} 

dag = DAG(
    dag_id='dagNameTest', default_args=default_args, schedule_interval='12 09 13 11 *',concurrency=1) 

それは日時があなたの時間を取ることができますので、あなたは時間と分でSTART_DATEを設定し、@onceスケジュールを使用する場合がありますいる可能性があります。しかし、私は自分自身でそれを試していない。

default_args = { 
'owner': 'airflow', 
'depends_on_past': False, 
'start_date': datetime(2017,11,13,9,11), 
'email': ['[email protected]'], 
'email_on_failure': False, 
'email_on_retry': False, 
'retries': 1, 
'retry_delay': timedelta(seconds=5) 
} 

dag = DAG(
    dag_id='dagNameTest', default_args=default_args, schedule_interval='@once',concurrency=1) 
関連する問題