【问题标题】:Managing Resque Workers during Capistrano deployment在 Capistrano 部署期间管理 Resque Workers
【发布时间】:2014-01-03 05:36:36
【问题描述】:

我正在使用 Capistrano 部署 Rails 应用程序。

此应用有一些通过 Resque 运行很长时间(大约 1 到 3 小时)的作业。

作业通过外部进程(不是 cron)在队列中排队,我不知道作业排队的确切时间。

当我部署应用程序时,我希望 Resque 调度程序加载新的 Rails 环境。

我不想在部署期间终止正在运行的作业。

理想情况下,正在运行的进程应该完成,并且 Resque 调度程序应该加载新的 Rails 环境,因此下次运行作业时,它会与更新的应用一起运行。

我知道如何使用 monit/supervisor 来监控/重启进程。但不确定关闭/重新启动哪个 Resque 进程时的策略/时机。

有什么建议吗?

【问题讨论】:

    标签: deployment capistrano resque


    【解决方案1】:

    如果您将QUIT 信号发送给 Resque 工作器,它将完成当前作业的处理然后关闭。请参阅 Resque README 的 Signals 部分。

    一旦工作进程关闭,进程主管就可以使用更新后的代码启动一个新的工作进程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-26
      • 1970-01-01
      • 2011-08-15
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 2012-03-14
      相关资源
      最近更新 更多