Rails 延迟作业 运行 使用 Dokku 的生产服务器中的旧版本代码

Rails Delayed Job running old version of code in production server with Dokku

我有一台在生产环境中配置了 Dokku 的服务器,其中包含 1 个工作人员 运行ning delayed_job 在后台执行一些代码,但是当我进行部署时,代码 运行 延迟作业有一个奇怪的行为,有时 运行 我部署了新代码,有时 运行 我部署前的旧代码。就好像延迟作业有两个实例,每个时刻都有一个被执行。

在这里阅读一些帖子,我看到延迟作业实现了缓存之类的东西,应该在部署前后清理它,但我没有像在 dokku 中那样找到它。

有谁知道如何只在 worker 上保留新版本的代码 运行ning?

Dokku 实现 zero-downtime deploys。这意味着它不会关闭旧容器,直到检查通过 - 对于 Web 进程类型 - 或者一段时间已经过去 - 对于所有其他容器。

对于给定的进程类型,此行为可能会被以下 运行 禁用:

# 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