在 mod_perl2 下是否有任何 fork 的禁忌症?是否应该使用另一种方式在 mod_perl2 下运行后台进程?
问问题
409 次
2 回答
4
我通常使用清理处理程序来运行 HTTP 请求完成后需要发生的任何事情:
$r->push_handlers( PerlCleanupHandler => sub { print "I'm doing stuff!" } );
如果你真的需要做一个 fork,你不应该按照常规的方式做,因为你的 fork 进程会干扰 Apache 需要的各种资源,比如文件描述符和套接字,并且很难正确处理所有这些。相反,试试Apache2::SubProcess。
于 2010-03-31T17:05:01.237 回答
0
您可以考虑运行反向代理。您在后端拥有处理资源密集型内容的重量级进程,以及在前端处理简单内容(例如返回静态内容)的轻量级进程。您的繁重流程不会占用简单的东西,因为您不必等待他们完成他们正在做的任何事情。
于 2010-04-01T00:01:35.370 回答