問題タブ [airflow-scheduler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1081 参照

airflow - 気流「one_success」タスクがトリガーされない

LocalExecutor を使用して 4 CPU マシンで Airflow を実行しています

アップストリーム タスクを 1 つの成功として定義しました

...

しかし、いくつかは明確に成功としてマークされていても、タスクはトリガーされません

「ダウンロードタスク」は並行して実行されるため、問題になることはありません

グラフ

タスクを検査すると、次のことが示されます。

依存性: 不明

理由: すべての依存関係が満たされていますが、タスク インスタンスが実行されていません。ほとんどの場合、これは次の場合を除き、タスクがおそらくすぐにスケジュールされることを意味します: - スケジューラがダウンしているか、負荷が高い - このタスク インスタンスは既に実行されており、状態が手動で変更されている (例: UI でクリアされている)

私は負荷を見てきましたが、実際にはかなり高いです:

負荷平均: 2.45、3.55、3.71 CPU は 50 ~ 60% です

しかし、他のタスクはすでに終了しているので、別のタスクを開始するための空きリソースがあるはずですよね?

0 投票する
1 に答える
1188 参照

python - Airflow DAG のトリガー

私たちは最近、Airflow を「データ ワークフロー」エンジンとして採用しようとしました。ほとんどのことは理解できましたが、DAG をトリガーするタイミングをスケジューラがどのように計算するかについては、まだ灰色の領域にいます。

この単純なダグを見てください:

スケジュールはこれを取得しますが、実行しません。ここで、「start_date」を次のように変更すると:

xxxx、yyyy、zzzz は今日の日付で、実行が開始されます。この原因は、スケジューラがソース DAG フォルダーからこの DAG を再読み取りし続け、毎回 datetime.now() を実行し、開始日が現在キューに入れられている日付と異なることに気付き、この DAG を再追加して再スケジュール/実行日を前倒ししますか (私のdag_dir_list_intervalは 300 です)?

また、気流では、私が理解しているように、dag の一時停止が解除される (または dags_are_paused_at_creation = False で追加される) と、スケジューラーは次のように実行をスケジュールします。

  • 1 日目の実行: 直後 (開始日 + 間隔)
  • 2 日目の実行: (開始日 + (間隔 * 2)) の直後
  • 3 日目の実行: (開始日 + (間隔 * 3)) の直後

これは正しい仮定ですか?

更新 (2017 年 7 月 30 日)

上記の仮定に基づいて、今日 (07/30/2017) にこの DAG を作成しました。

(UTC)に開始する必要があります:

  • 2017/7/30 20:20:00
  • 2017/7/30 20:30:00
  • 2017/7/30 20:40:00

残念ながら、これは起こっていません。これが私のダッシュボードのスクリーンショットです。

20:21:00 に DAG が実行されなかった理由を誰か説明できますか? 20:31:00 以降、まだ実行されませんでした...ここで何が欠けていますか?

ちなみに、何らかの理由で、ダッシュボードから手動で DAG を開始するたびに、DAG が「実行中」の段階にあることに気付きました。どうしてこれなの?手動で開始することは、開始タイミング オプション (start_date/interval/etc) と関係がありますか??

あなたが提供できる説明をありがとう

0 投票する
1 に答える
1000 参照

airflow - ダウンストリームに何が起こっても Airflow タスクは実行されます

私は1日で3つのタスクを持っています。

タスク A を最初に実行します。タスク A が成功すると、タスク B が実行されます。

タスク B の後に実行されたタスク C がありますが、タスク B またはタスク A の成功または失敗に依存しません。

タスク C は、タスク A と B に何が起こっても実行する必要があります。ただし、タスク A と B が完了した後に実行する必要があります。

何か案が ?