气流不运行任务

时间:2019-11-06 12:08:37

标签: airflow

我已经为Airflow编写了一个python任务。当我将DAG加载到Airflow中时,一切正常。一旦触发DAG的运行,它将创建运行并切换为成功,而无需运行任务。 Web服务器和调度程序都正在运行,并且日志中没有任何内容。 该任务甚至在运行时甚至都没有状态(甚至没有跳过)。

如果我直接使用airflow test update_dags work 2019-01-01运行任务,它将运行正常。

这是我的DAG:

from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from datetime import datetime, timedelta
import os

default_args = {
    'owner': 'Airflow',
    'depends_on_past': False,
    'start_date': datetime.today(),
    'email': ['***redacted***'],
    'email_on_failure': False,
    'email_on_retry': False,
    'retries': 1,
    'retry_delay': timedelta(minutes=5),
    'params': {
        'git_repository': '***redacted***',
        'git_ref': 'origin/master',
        'git_folder': '/opt/dag-repository'
    }
}

def command(cmd: str, *args):
    templated_command = cmd.format(*args)
    print('Running command: {}'.format(templated_command))
    os.system(templated_command)


def do_work(**kwargs):
    params = kwargs['params']
    dag_directory = kwargs['conf'].get('core', 'dags_folder')
    git_repository = params['git_repository']
    git_ref = params['git_ref']
    git_folder = params['git_folder']

    command('if [ ! -d {0} ]; then git clone {1} {0}; fi', git_folder, git_repository)
    command('cd {0}; git fetch -apt', git_folder)
    command('cd {0}; git reset --hard {1}', git_folder, git_ref)
    command('ln -sf {0} {1}', '{}/src'.format(git_folder), dag_directory)


with DAG('update_dags', default_args=default_args, schedule_interval=timedelta(minutes=10), max_active_runs=1) as dag:
    work_stage = PythonOperator(
        task_id="work",
        python_callable=do_work,
        provide_context=True
    )

0 个答案:

没有答案