python-3.x - Airflow 1.10 : sqlalchemy. orm.exc.NoResultFound:未找到 one() 的行

标签 python-3.x airflow

当您遵循本教程时:

http://michal.karzynski.pl/blog/2017/03/19/developing-workflows-with-apache-airflow/

或者当您创建任何 DAG 并尝试通过此脚本使用 API 运行它时:

for i in {1..10}; do
    RUN_ID=BASH_REST_CALL__$(uuidgen)
    curl -X POST \
      http://localhost:8080/api/experimental/dags/my_test_dag/dag_runs \
      -H 'Cache-Control: no-cache' \
      -H 'Content-Type: application/json'  -d "{\"run_id\": \"${RUN_ID}\"}" &
 done

在一些回复中您可以看到:

                          ____/ (  (    )   )  \___
                         /( (  (  )   _    ))  )   )\
                       ((     (   )(    )  )   (   )  )
                     ((/  ( _(   )   (   _) ) (  () )  )
                    ( (  ( (_)   ((    (   )  .((_ ) .  )_
                   ( (  )    (      (  )    )   ) . ) (   )
                  (  (   (  (   ) (  _  ( _) ).  ) . ) ) ( )
                  ( (  (   ) (  )   (  ))     ) _)(   )  )  )
                 ( (  ( \ ) (    (_  ( ) ( )  )   ) )  )) ( )
                  (  (   (  (   (_ ( ) ( _    )  ) (  )  )   )
                 ( (  ( (  (  )     (_  )  ) )  _)   ) _( ( )
                  ((  (   )(    (     _    )   _) _(_ (  (_ )
                   (_((__(_(__(( ( ( |  ) ) ) )_))__))_)___)
                   ((__)        \\||lll|l||///          \_))
                            (   /(/ (  )  ) )\   )
                          (    ( ( ( | | ) ) )\   )
                           (   /(| / ( )) ) ) )) )
                         (     ( ((((_(|)_)))))     )
                          (      ||\(|(|)|/||     )
                        (        |(||(||)||||        )
                          (     //|/l|||)|\\ \     )
                        (/ / //  /|//||||\\  \ \  \ _)
-------------------------------------------------------------------------------
Node: 5b104ab0dac5
-------------------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
    raise value
  File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/local/lib/python3.6/site-packages/airflow/api/auth/backend/default.py", line 32, in decorated
    return function(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/airflow/www/api/experimental/endpoints.py", line 78, in trigger_dag
    dr = trigger.trigger_dag(dag_id, run_id, conf, execution_date)
  File "/usr/local/lib/python3.6/site-packages/airflow/api/common/experimental/trigger_dag.py", line 101, in trigger_dag
    replace_microseconds=replace_microseconds,
  File "/usr/local/lib/python3.6/site-packages/airflow/api/common/experimental/trigger_dag.py", line 77, in _trigger_dag
    external_trigger=True,
  File "/usr/local/lib/python3.6/site-packages/airflow/utils/db.py", line 73, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/airflow/models.py", line 4382, in create_dagrun
    run.refresh_from_db()
  File "/usr/local/lib/python3.6/site-packages/airflow/utils/db.py", line 73, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/airflow/models.py", line 5064, in refresh_from_db
    DR.run_id == self.run_id
  File "/usr/local/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 3046, in one
    raise orm_exc.NoResultFound("No row was found for one()")
sqlalchemy.orm.exc.NoResultFound: No row was found for one()

最佳答案

我遇到了同样的错误。我认为这是由于同时插入了许多任务。由于某种原因,它让它爆炸。如果您在其中添加 sleep 命令,它应该可以工作,但这显然不理想,因为有时您想要一次插入多个任务。

我认为这也可能是由于 mysql 和 postgres 中时间戳的处理方式不同。看来airflow团队主要在postgres上进行测试。我现在正在更新以使用 postgres 而不是 mysql。到时候我会更新。

关于python-3.x - Airflow 1.10 : sqlalchemy. orm.exc.NoResultFound:未找到 one() 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54412780/

相关文章:

python - 如何从谷歌云 Composer 调用云功能?

python - 每n步执行一次while循环

python - Cloud Composer写入文件和dag执行后消失的文件

python - 我应该使用 str.something(...) 还是 '…' .something()?

python - NameError:未定义名称 '` Timevalue`

python - 给定 RAM 和 CPU 限制,如何使用 Airflow 主动控制 DAG

python - Airflow 在发生故障时使所有 dags 执行特定操作

python-3.x - Airflow {logging_mixin.py :84} WARNING - --- Logging error --

python - 计算数字中的数字之和,使用/和%时结果不正确

python - 带有三元运算符的 Walrus 运算符的正确语法是什么?