【问题标题】:Why is the task inside my DAG not running?为什么我的 DAG 中的任务没有运行?
【发布时间】:2019-07-05 00:25:43
【问题描述】:

我已安排我的气流 DAG 运行,每个 DAG 内部都有一个任务。当 DAG 运行时,其中的任务不会被执行。

这是我的代码(我正在尝试通过 SSH 连接到 EC2 服务器并运行 bash 命令)

from datetime import timedelta, datetime
from airflow import DAG
from airflow.contrib.operators.ssh_operator import SSHOperator


default_args = {
    'owner': 'airflow',
    'depends_on_past': False,
    'email': ['removed@example.com'],
    'email_on_failure': True,
    'email_on_retry': True,
    'start_date': datetime.now() - timedelta(days=1),
    'retries': 1,
    'retry_delay': timedelta(minutes=5),
}

dag = DAG(dag_id='back_fill_reactivated_photo_dimension',
          default_args=default_args,
          schedule_interval='55 * * * *',
          dagrun_timeout=timedelta(seconds=120))

t1_bash = """
/usr/local/bin/dp/database_jobs/run_py.sh "backfill_photo_dim_reactivated.py"
"""

t1 = SSHOperator(
    ssh_conn_id='ssh_aws_ec2',
    task_id='backfill_photo_dim',
    command=t1_bash,
    dag=dag)

Airflow UI 显示 DAG 处于运行状态,但 DAG 内的实际任务从未运行,我的代码中是否缺少某些内容?

另外,有没有办法强制运行 DAG 而不管它的 CRON 计划是什么?

【问题讨论】:

    标签: python-3.x airflow directed-acyclic-graphs


    【解决方案1】:

    卡在“计划”中的任务通常意味着您没有可用的池或队列。 您是否使用本地执行程序?如果是,调度程序是否正在运行?

    您可以使用命令行强制运行(或测试)任务。

    【讨论】:

    • 谢谢。是的,气流调度程序正在运行。我会调查那个游泳池的事情。
    【解决方案2】:

    你dag检查你的配置没有错。你能分享你的cfg文件吗

    【讨论】:

    • 给你:codeshare.io/anMVBY 仅供参考:我正在使用我自己的 AWS RDS 数据库来存储所有气流元数据。
    • 你在使用什么消息代理(即 rabbit mq)
    • 是这个 dag 还是所有 dag 的问题
    • 你能不能在cfg文件中把你的执行器改成本地执行器,试试看它是否有效,那么肯定有配置问题
    • 以上问题已解决,如果您需要任何帮助,请告诉我
    【解决方案3】:

    很可能您没有运行scheduler

    运行airflow scheduler -D 将其转为后台。那应该可以解决问题。

    【讨论】:

      猜你喜欢
      • 2017-09-17
      • 2016-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多