エアフローが初めてです。スケジューリングに関するAirflowドキュメントのすべての記事を読んだと思いますが、start_date + schedule_interval(つまりタスクインスタンスなし)の後もDAGを実行できないようです。私はドッカーを使用しています。私はそれが私はチュートリアルのコードを使用していた場合ではなかったにもかかわらず、ダグをスケジュールしているコマンドが欠落していると思います。エアフロードッカーの導入:開始日以降のタスクが実行されない
ここは私のドッカーファイルです。
FROM ubuntu:latest
FROM python:3
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev apt-utils build-essential
RUN pip install --upgrade pip
# Installs these and a few others
# mysqlclient==1.3.10
# airflow==1.7.1.3
COPY dependencies /dependencies
RUN pip install -r dependencies/requirements_loader.txt
COPY airflow /root/airflow
# Load other dependencies
# I have tried many different variation of these commands with no luck
CMD airflow webserver -p 8080
CMD airflow scheduler -d DAG_id
私が書いたライブラリをロードするモジュールでPythonOperatorを使用しています。これが正しい方法であるかどうかはわかりませんが、airflow test dag_id execution_date
が動作します。これは私にとって最も独特です。テストは機能しますが、エアフローを開始すると実際には実行されません。私はLocalExecutorを使用しています。ここに私のダグがあります。
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from datetime import datetime, timedelta
from my_lib import my_func
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2017, 3, 6),
'email_on_failure': False,
'email_on_retry': False,
'email': ['[email protected]'],
'retries': 1,
'retry_delay': timedelta(minutes=5)
}
dag = DAG('dag_id', default_args=default_args, schedule_interval="31 2 * * *")
t1 = PythonOperator(
dag=dag,
task_id='run_my_func',
provide_context=False,
python_callable=my_func)
私はまた、スケジュール間隔で周り台無しと@daily
間隔でヶ月前に開始した日付を含め、日付を開始しています。これらのどれも私の運が与えられていない。
実際に困惑しているのは、私がダグをテストすると動作しますが、スケジューリングされず、デプロイ後にtask_instancesを作成しないということです。
ダグを適切にスケジュールする展開の正しい方向を誰かが指摘できますか?私が間違っていることは何ですか?
は、あなたのDAGをオンにしていますか?例えば、このイメージを見てください。https://i.imgur.com/GkvqvLb.png。ダグがオンに切り替わります。 – nehiljain
ちょうど、私は気流活性化ロジックに多くの矛盾があることがわかりました。私たちのほとんどが想定しているようには機能しません。何かがなぜ始まらないのかを理解するためには、コードを掘り下げる必要があります。気流の概念は素晴らしいですが、現在の実装は非常に変わったIMHOです。 –
@nehiljain私はダグをオンにできる場所は実際には表示されません。 http://imgur.com/a/tSwOi何か不足していますか? – jhilliar