首页 > 解决方案 > 气流的 entrypoint.sh 文件中 TRY_LOOP="20" 的目的是什么?

问题描述

我在 Airflow 设置中的 entrypoint.sh 文件以如下所示的脚本开头:

我不明白 TRY_LOOP="20" 应该做什么?

例子:

TRY_LOOP="20"

: "${AIRFLOW_HOME:="/usr/local/airflow"}"

: "${AIRFLOW__CORE__FERNET_KEY:=${FERNET_KEY:=$(python -c "from cryptography.fernet import Fernet; FERNET_KEY = Fernet.generate_key().decode(); print(FERNET_KEY)")}}"

:“${AIRFLOW__CORE__EXECUTOR:=${EXECUTOR:-Sequential}Executor}”

标签: dockerairflow

解决方案


puckel docker 镜像使用 TRY_LOOP 变量重试连接 Postgres 数据库和 Redis 20 次。当数据库需要一些时间来初始化并且端口还没有准备好处理连接时,这很有帮助。

代码:

https://github.com/puckel/docker-airflow/blob/bed777970caa3e555ef618d84be07404438c27e3/script/entrypoint.sh#L31-L43

https://github.com/puckel/docker-airflow/blob/bed777970caa3e555ef618d84be07404438c27e3/script/entrypoint.sh#L31-L43


推荐阅读