【问题标题】:Nomad task getting killed游牧任务被杀
【发布时间】:2019-05-18 06:34:04
【问题描述】:

我在任务组中有两个任务 1)一个数据库任务来启动一个数据库和 2)需要数据库启动的应用程序。

两者都是并行启动的,db 任务需要一点时间,但到那时应用程序会识别出 db 未启动并终止 db 任务。有什么解决办法吗?请指教。

【问题讨论】:

    标签: database delayed-job nomad


    【解决方案1】:

    有一个入口点脚本来检查数据库是否健康是很常见的。这是我以前用过的一个脚本:

    #!/bin/sh
    
    set -e
    cmd="$*"
    
    postgres_ready() {
        if test -z "${NO_DB}"
        then
            PGPASSWORD="${RDS_PASSWORD}" psql -h "${RDS_HOSTNAME}" -U "${RDS_USERNAME}" -d "${RDS_DB_NAME}" -c '\l'
            return $?
        else
            echo "NO_DB Postgres will pretend to be up"
            return 0
        fi
    }
    
    
    until postgres_ready
    do
        >&2 echo "Postgres is unavailable - sleeping"
        sleep 1
    done
    
    >&2 echo "Postgres is up - continuing..."
    
    exec "${cmd}"
    

    您可以将其保存为entrypoint.sh 并使用您的应用程序启动脚本作为参数运行它。例如:entrypoint.sh python main.py

    【讨论】:

      猜你喜欢
      • 2020-11-29
      • 2021-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-26
      • 2020-05-10
      相关资源
      最近更新 更多