Задача кочевника убить - PullRequest
       44

Задача кочевника убить

0 голосов
/ 17 декабря 2018

У меня есть две задачи в группе задач 1) задача БД для вызова БД и 2) приложение, которому нужен БД для работы.

Оба запускаются параллельно, и задачи db занимают немного времени, но к тому времени приложение распознает, что db не запущен, и убивает задачу db.Какие-либо решения?Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 17 января 2019

Довольно часто иметь сценарий точки входа, который проверяет работоспособность БД.Вот скрипт, который я использовал раньше:

#!/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

...