0

在比较 mod_perl 与 fastcgi 时总是列出的好处之一是,对于 mod_perl,您必须完全重新加载应用程序并有停机时间,但使用 fastcgi,您可以重新加载应用程序而无需停机。但是,我找不到任何有关如何执行此操作的示例。这是否可以重新加载正在使用 fastcgi 运行的 Catalyst 应用程序而无需停机?我按照本指南启动并运行了我的 Catalyst 应用程序。谢谢!

4

2 回答 2

0

是的。在 FastCGI 下运行的应用程序(不管它是否使用 Catalyst)可以简单地exit;并且 FastCGI 将立即生成一个替换进程,前提是 FastCGI 为该应用程序定义了 AppClass 并且 AppClass 配置为正-processes数。

如果没有 AppClass 或-processes为 0,则在下一个请求进入应用程序的 URI 时将创建一个替换进程。这可能会导致第一个请求在等待应用启动时稍有延迟,但仍会正常处理该请求。

在任何一种情况下,只要应用程序exit在完成当前请求后被允许而不是在请求中间被中断(例如,kill -9使用

于 2013-05-30T09:22:49.963 回答
0

通过结合本指南的脚本和此答案中找到的 bash 脚本的一部分,我能够创建一个执行我想要的脚本。如果您将脚本放入/etc/init.d,然后在顶部更改适当的变量,则此脚本会非常有用。来电:

service script reload

或者

/etc/init.d/script reload

允许您在新代码加载时没有停机时间。可以在此处找到该脚本。您只需要下载脚本,更改顶部的变量,执行

chmod +x script

并将其移入/etc/init.d,然后您就可以开始了!:)

于 2013-05-31T00:49:05.583 回答