ruby - Puma 主进程退出回调

标签 ruby puma

如何在 Puma 主进程关闭之前执行 ruby​​ 代码? 现在我优雅地关闭 Puma 的操作:

Process.kill("INT", Process.ppid)

当所有工作人员都停止工作时,我需要执行 ruby​​ 代码。

at_exit do
  puts 'bye...'
end

将在每个进程退出后执行,我需要在所有工作人员退出后回调。

最佳答案

只是一个小技巧来做到这一点......

将全局常量添加到您的config.ru(或设置)文件中:

ROOT_PROCESS_ID = Process.pid

你可以做这样的事情:

at_exit do
  if(Process.pid == ROOT_PROCESS_ID)
    puts 'bye...'
  end
end

这不是 Puma 特有的,因此即使您更换服务器(如果您曾经切换过),它也应该可以工作。

关于ruby - Puma 主进程退出回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48461921/

相关文章:

ruby-on-rails - Rails服务器启动/停止

ruby - 如何设置对在 Chef 加载 Recipe 时不存在的 Ruby 库的依赖项?

ruby-on-rails - rails 4 直播不适用于 Puma

ruby-on-rails - 无法将 Puma 作为守护进程运行 OptionParser::AmbiguousOption:模糊选项:-d

ruby - Array#first 的 block 参数有什么作用?

ruby-on-rails - Rails Bundler-在Gemfile中指定with-opt-dir?

ruby-on-rails - 如何为 Puma 检查 Rails 应用程序的线程安全

ruby-on-rails - 如何将 rails 2.3.10 更新到 3.x

css - 在 Ruby on Rails 中将图像加载到 View 中时出错

ruby - 计算句子 Ruby 的数量