2016-05-05 21 views
12

エアフローを使用して、コマンドラインから手動でトリガする特定のワークフローを定義しようとしています。気流をトリガするDAGが機能していない

私はDAGを作成し、一連のタスクを追加します。

dag = airflow.DAG(
    "DAG_NAME", 
    start_date=datetime(2015, 1, 1), 
    schedule_interval=None, 
    default_args=args) 

私はその後、端末

airflow trigger_dag DAG_NAME 

で実行され、何も起こりません。スケジューラは別のスレッドで実行されています。どんな方向にも大変感謝しています。ありがとうございました

+0

あなたは 'airflow list_dags'を作成するときにあなたのダグを見ることができますか? –

答えて

5

ワークフローを無効にしている可能性があります。 ワークフローを手動で有効にする。 http://localhost:8080

$ airflow webserver -p 8080 

移動によって気流Webサーバを開きます。トグルボタンをオン/オフにして使用可能なすべてのダグのリストが表示されます。デフォルトでは、すべてがオフに設定されています。ダグを検索し、ワークフローを切り替えます。次に、端末からワークフローをトリガーしてみます。今はうまくいくはずです。

0

また、DAG自体がUIでオンになっていることを確認してください。

20

私はちょうど同じ問題に遭遇しました。

あなたがairflow list_dags中またはその後、Webサーバを経由して、あなたのDAGを見ることができますと仮定:

は、私は、Web UIにDAGをオンにする必要がなかっただけでなく、私はまたairflow schedulerが実行されていたことを保証しなければなりませんでした別のプロセスとして。私は成功しairflow trigger_dag <dag_id>

マイDAG構成を使用して、私のDAGを実行することができましたスケジューラを実行した後は

はあなたとは大きく異なるものではありません。私もあるschedule_interval=None

+1

私は最近、ポスターと同じ問題が発生しました。UIのDAGを切り替えることで、手作業を起動させることができました。ありがとう! – AetherUnbound

+0

在庫の例の1つを 'airflow trigger_dag'で実行しようとしているのと同様の問題がありました。その場合、DAGが 'example_dags'モジュールからロードされたとしても、DAGS_FOLDERの' scheduler'にDAGが表示されなければならないか、DAGがチェックされませんでした。 –

1

気流上のデータベース接続文字列が働いていることを確認してください、天気はpostgres、sqlite(デフォルト)または他のデータベースにあることを確認してください。次に、コマンド

airflow initdb 

を実行します。このコマンドは、第二

airflow webserver 

が続いて別のスレッドで、あなたのschdeulerを実行して、あなたのウェブサーバが別のスレッドで実行されていることを確認してください任意の接続エラー

を示すべきではありません

airflow scheduler 

最後に、別のスレッドでダッグを起動するRスケジューラは

airflow trigger_dag dag_id 

を実行している。また

airflow list_dags 
airflow list_tasks dag_id 

DAG名とタスクがDAGに存在していることを確認し、タスクリスト作り、DAGはその上にトグルその後、あなたのUIでオフになっている場合。

関連する問題