Phusion Passenger可以通知我它即将终止我的流程吗?

时间:2013-07-19 02:16:54

标签: ruby-on-rails ruby passenger

As described here,Passenger会分叉我的进程,我需要恢复我的后台线程。我这样做,它通常有效,但有时我的进程在我的后台线程完成之前终止。我在后台线程上所做的就是排队一堆数据,这样我就可以在更大的块中更有效地发送它。 I just asked a similar question,但我有了一个新想法:我想知道我是否可以注册类似于此的回调:

PhusionPassenger.on_event(:starting_worker_process) do |forked|...

但是我没有收到关于:starting_worker_process事件的通知,我想知道我的进程即将被终止,所以我可以快速刷新缓冲区并退出。有这样的事件吗?

2 个答案:

答案 0 :(得分:1)

内核提供#at_exit,可用于此目的。

at_exit do
  # Cleanup
end

答案 1 :(得分:0)

从旅客的源代码来看,似乎有一个名为:stopping_worker_process的事件。我还没有测试过。