【问题标题】:Dokku remove worker without finishing tasksDokku 在没有完成任务的情况下移除工人
【发布时间】:2023-01-08 16:48:18
【问题描述】:

我有 Ruby on Rails 应用程序,在我使用 Dokku 进行任何部署之后,我的旧工作人员正常运行任务,但是当我完成部署时,几秒钟后这个工作人员被删除并创建了一个新工作人员而没有完成所有正在运行的任务。有谁知道我如何解决这个问题?还是 worker 在删除之前完成所有任务,或者在部署后创建 worker 时,旧 worker 的任务转到新 worker?有什么迹象吗?

【问题讨论】:

    标签: ruby-on-rails docker redis worker dokku


    【解决方案1】:

    Dokku 的零停机部署机制将在运行docker container stop 之前等待一段可配置的时间。这将向您的应用程序发送SIGTERM,然后在宽限期后发送SIGKILL

    您的应用程序代码应该处理 SIGTERM 并优雅地停止接受新工作,完成旧工作,然后终止。这通常是后台处理框架默认执行的操作,但您可能需要在自己的框架中进行配置或添加功能(如果它是您编写的自定义框架)。

    【讨论】:

      猜你喜欢
      • 2017-01-24
      • 2012-12-26
      • 1970-01-01
      • 2017-11-16
      • 2015-06-08
      • 2013-01-29
      • 1970-01-01
      • 2022-01-21
      相关资源
      最近更新 更多