2016-12-07 4 views

答えて

1

用途:

(私は本当のようdepends_on_previousを持っていますが、それはこのケースでは動作しません)

私のDAGは、このようになりますDAGのdepends_on_pastwait_for_downstream

編集:上記の2つの引数をテストするには、実行全体が完了するまで実際に待つ必要はありません。これを達成するためにカスタムセンサーを作成する必要がありました。

+0

私はwait_for_downstreamを使用しようとしましたが、それは何が期待されていません。あなたがなぜ同じ問題を抱えているのかも知れませんでした。なぜなら、それは次の日に続く前にダグ全体が完了するのを待っていないからです。 – user3542930

+0

@ user3542930 – nono

-2

あなただけ= 1

+0

なぜそれは良い答えではないのですか? – nono

+0

@nonoもし私が推測するなら(私はそれを投票しなかった)、それはその答えが注文Bを実施しないためであろう。 – joeb

2

max_active_runsを設定してみてくださいその後、一度に一つのインスタンスを実行したい場合は、この答えのために少し遅れて、私は同じ問題に走ったと私はそれを解決する方法がIである可能性があります各ダグに2つの追加タスクが追加されました。最初は「前」、最後は「完了」となります。前のタスクは、前のジョブを監視する外部タスクセンサーです。 Completeはダミー演算子です。ダグは、次のようになりますので、それは30分ごとに実行されます言うことができます:

dag = DAG(dag_id='TEST_DAG', default_args=default_args, schedule_interval=timedelta(minutes=30)) 

PREVIOUS = ExternalTaskSensor(\ 
     task_id='Previous_Run', 
     external_dag_id='TEST_DAG', 
     external_task_id='All_Tasks_Completed', 
     allowed_states=['success'], 
     execution_delta=timedelta(minutes=30), 
     dag=DAG) 

T1 = BashOperator(
    task_id='TASK_01', 
    bash_command='echo "Hello World from Task 1"', 
    dag=dag) 

COMPLETE = DummyOperator(\ 
     task_id='All_Tasks_Completed', 
     dag=DAG) 

PREVIOUS >> T1 >> COMPLETE 

ので、次のダグ、それはキューに来るさえカントーPREVIOUSが完了するまで、それはタスクが実行できません。

+0

確かに、https://groups.google.com/forum/#!topic/airbnb_airflow/ qh-2zXfTeqg – nono

関連する問題