0

我在 FCGI 模式 (Apache) 下与同一个用户同时运行多个 Perl dancer 应用程序。正如我正确理解的那样,如果当前的应用程序很忙,Apache(或任何其他网络服务器)将派生一个新的舞者应用程序。

为了确保没有访客被舞者关闭中断,我喜欢让舞者处理当前连接,直到它完成然后exit/last过程。

如何使用 kill 信号关闭 Perl dancer 应用程序HUP以执行如此好的关闭?

为了推出新版本的舞者应用程序,我使用pkill -HUP perl舞者用户“关闭”进程。但是目前(由于缺少信号处理程序)更像是在关闭应用程序时将它们击落

4

2 回答 2

2

mugen kenichi的解决方案(starman):

如果您能够更改您的基础设施,您可以尝试支持您需要的 plack 网络服务器之一。starman 和 hyponotoad 都在 SIGHUP 上优雅地重启

有一些缺点,<% request.uri_base %>所以我们必须使用硬编码的 URI 路径进行开发。不是很帅但是很有必要。

于 2012-10-22T12:25:10.800 回答
0

如果我正确阅读了您的问题,您担心 Apache/FCGI 可能会在处理请求的过程中杀死 Dancer 应用程序。那是对的吗?

如果是这样,请不要担心。Apache/FCGI 不这样做。当它因为现有实例很忙而派生处理程序的新实例时,这是现有实例之外的新实例。现有的将独自完成他们正在做的事情。

于 2012-10-20T14:53:19.137 回答