我有一个气流dag,有一个bash操作符,什么都不做
dag = DAG(
"test",
default_args={
"owner": "...",
"start_date": datetime.combine(datetime.today() - timedelta(1), datetime.min.time()),
"retry_delay": timedelta(minutes=1),
"email": "...",
"queue": ...
},
schedule_interval="*/5 * * * *",
max_active_runs=1
)
BashEx(
task_id="my_task",
s3_files=[],
bash_command="echo test",
dag=dag
)
当我从web-ui触发它时它失败并且日志为空:在 Log by attempts
下面有一个空白页面 . started
和 duration
的值是 none
如果我从cli运行相同的dag,或者由调度程序触发它,或者如果我通过填充表单创建一个新的“dag run”,它就会成功 .
只有当我单击触发新运行的播放按钮时才会出现此问题 .
是什么导致这种情况?
我正在使用带有CeleryExecutor的airflow 1.9.0
edit
-
这只发生在某些队列上,如果我使用队列A,在同一台机器上有一个 Worker (在不同的docker容器上)没有问题 . 在队列B上,有一个工作人员在EMR上运行(aws)我遇到了这个问题 .
-
我查看了 Worker 的日志,得到了这样的东西:
这是我从播放按钮触发的失败运行
INFO - 在Celery中执行命令:airflow run python_sample python_sample 2018-03-21T14:35:34.123647 --local -sd /var/lib/airflow/dags/python_sample.py ... 错误 - 命令'气流运行python_sample python_sample 2018-03-21T14:35:34.123647 --local -sd /var/lib/airflow/dags/python_sample.py'返回非零退出状态1
从我从dagRun表单触发任务时,这是一次成功的运行
INFO - 在Celery中执行命令:airflow run python_sample python_sample 2018-03-21T14:37:09 --local -sd /var/lib/airflow/dags/python_sample.py ... INFO - 正在运行:['bash',' - c',u'airflow运行python_sample python_sample 2018-03-21T14:37:09 --job_id 8279 --raw -sd DAGS_FOLDER / python_sample.py']
到目前为止,我最好的猜测是,当web-ui以 2018-03-21T14:35:34.123647
的格式开始日期时,工作人员无法处理它,而不是所有其他类型的触发器都接收到的更简洁的 2018-03-21T14:35:34
,但我不知道知道如何以不同方式配置它