2017-11-22 10 views
0

気流DAGがありますが、埋め戻すのは実際には意味がありません。気流1.8では、DAGにパラメータcatchup=Falseを与えることができるので、最新のジョブだけが開始されることがわかりました。 つまり、DAGを深夜に開始して毎日実行したいと思います。 しかし、それが今のことです:DAGは真夜中ではなく即座に始まります。また、すべてのDAG実行をクリアすると、すぐに再開します。 DAGは毎日実行されますが、開始日時が+ 1日間違いでスケジュールされます。気流DAGは、catchup = Falseで指定された時間に実行されません。

最新のジョブの実行を開始するDAG()は、特定の時刻(深夜)にどのように起動できますか?ここで

は、私が使用するコードは次のとおりです。

from datetime import datetime, timedelta 
from airflow import DAG 
from airflow.operators.dummy_operator import DummyOperator 

default_args = {'depends_on_past': False, 
       'start_date': datetime(2013, 1, 1)} 

with DAG('test_dag', 
     default_args=default_args, 
     schedule_interval=timedelta(days=1), 
     catchup=False 
     ) as dag: 
    test = DummyOperator(task_id='test') 

答えて

0

あなたはschedule_intervalでcrontabファイルを置くことができ、より多くの詳細がここで見つけることができます:https://airflow.apache.org/scheduler.html#dag-runsschedule_interval="0 0 * * *"

例えばまた、エアフローはUTCで実行されている、してくださいあなたの "真夜中"を正しいタイムゾーンに調整してください。

+0

ありがとうございます!私は、大丈夫を参照してください。だから私は 'schedule_interval = @ daily 'をそこに入れてもいいですか?それとも、いつもそこにcrontabを使わなければなりませんか? 私はまだ解明しなければならないUTCのこと。私はまだ空気中のタイムゾーンを適切に設定する場所を見つけていません...しかし、今は私のタイムゾーンをUTCに変換すれば十分です。 – jabberwocky

+0

@jabberwocky、 '@ daily'は" 0 0 * * * "を表現するのは簡単な方法です。あなたがUTCに住んでいない場合は、UTCの下で深夜を意味するものを指定する必要があります。例えばUS-EST真夜中の「0 5 * * *」を入れることができます。 – Chengzhi

+0

FYIタイムゾーンのサポートを追加するために[プルリクエスト](https://github.com/apache/incubator-airflow/pull/2781)が審査されているので、間もなく使用される可能性があります。 –

関連する問題