As described here,Passenger会分叉我的进程,我需要恢复我的后台线程。我这样做,它通常有效,但有时我的进程在我的后台线程完成之前终止。我在后台线程上所做的就是排队一堆数据,这样我就可以在更大的块中更有效地发送它。 I just asked a similar question,但我有了一个新想法:我想知道我是否可以注册类似于此的回调:
PhusionPassenger.on_event(:starting_worker_process) do |forked|...
但是我没有收到关于:starting_worker_process
事件的通知,我想知道我的进程即将被终止,所以我可以快速刷新缓冲区并退出。有这样的事件吗?
答案 0 :(得分:1)
内核提供#at_exit,可用于此目的。
at_exit do
# Cleanup
end
答案 1 :(得分:0)
从旅客的源代码来看,似乎有一个名为:stopping_worker_process
的事件。我还没有测试过。