Rails Delayed Job запускает старую версию кода на рабочем сервере с Dokku - PullRequest
2 голосов
/ 03 июля 2019

У меня есть сервер, настроенный для работы с Dokku, который содержит 1 работника, выполняющего delayed_job для выполнения некоторых кодов в фоновом режиме, но когда я выполняю развертывание, код, выполняющийся с отложенным заданием, имеет странное поведение и иногда запускает развернутый мой новый код, а иногда запустить мой старый код перед развертыванием. Это как если бы было два экземпляра отложенного задания, и в каждый момент было выполнено одно.

Читая некоторые посты здесь, я вижу, что отложенное задание реализует что-то вроде кеша, и его нужно очистить после и до развертывания, но я не нашел его, как это делает в dokku.

Кто-нибудь знает, как сохранить на рабочем месте только новую версию кода?

1 Ответ

1 голос
/ 03 июля 2019

Dokku реализует развертывает без простоев . Это означает, что он не закрывает старые контейнеры до тех пор, пока не пройдут проверки - для типов веб-процессов - или не пройдет период времени - для всех остальных.

Это поведение можно отключить для данного типа процесса, выполнив следующее:

# for all process types, this will result in downtime during deploys
# replace APP with your app name
dokku checks:disable APP

# for a given process type
# replace APP with your app name
# replace PROCESS_TYPE with the process type for which you'd like to disable it for
dokku checks:disable APP PROCESS_TYPE
...