如何在 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/