【问题标题】:How to shutdown Perl dancer applications nicely如何很好地关闭 Perl dancer 应用程序
【发布时间】:2012-10-10 23:12:10
【问题描述】:

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

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

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

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

【问题讨论】:

  • 如果您能够更改您的基础架构,您可以尝试支持您需要的 plack 网络服务器之一。 starmanhyponotoad 都在 SIGHUP 上正常重启
  • starman 听起来不错,我尝试与系统管理员争论。愿你想把你的评论作为答案,@mugen。

标签: perl apache signals fastcgi dancer


【解决方案1】:

solution by mugen kenichi 工作(starman):

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 嗨@Dave。我已经改进了我的问题。我不担心 Apache 正在疯狂地扼杀应用程序。不过还是谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    相关资源
    最近更新 更多