【发布时间】:2018-01-26 13:03:18
【问题描述】:
如何在 Puma 主进程关闭之前执行 ruby 代码? 现在我正在优雅地关闭 Puma 的操作:
Process.kill("INT", Process.ppid)
当所有工人都停工时,我需要执行 ruby 代码。
at_exit do
puts 'bye...'
end
将在每个进程退出后执行,并且我需要在所有工作人员退出后回调。
【问题讨论】:
-
不是 100% 确定您的意思。您是否需要在每个工人退出后或在 Puma 停止之前执行的东西?你已经提到了
at_exit,所以你能解释一下为什么这对你不起作用吗? -
这很hacky,但是你可以使用
on_worker_boot来知道你是否在一个工作进程中。而且由于主进程将最后退出,所有工作人员都会在那时退出。所以你应该只检查at_exit块是否在主进程中。