【问题标题】:Rails Delayed Job running old version of code in production server with Dokku使用 Dokku 在生产服务器中运行旧版本代码的 Rails 延迟作业
【发布时间】:2019-07-02 23:17:00
【问题描述】:

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

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

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

【问题讨论】:

    标签: ruby-on-rails ruby delayed-job dokku


    【解决方案1】:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-25
      • 1970-01-01
      • 1970-01-01
      • 2015-12-03
      • 2011-11-04
      相关资源
      最近更新 更多