在mod_perl2下分叉是不是一个坏主意?

时间:2010-03-31 16:49:02

标签: perl fork mod-perl2

对mod_perl2下的fork有任何禁忌症吗?是否应该使用另一种方式在mod_perl2下运行后台进程?

2 个答案:

答案 0 :(得分:4)

我通常使用清理处理程序来运行HTTP请求完成后需要发生的任何事情:

$r->push_handlers( PerlCleanupHandler => sub { print "I'm doing stuff!" } );

如果你真的需要做一个fork,你不应该以常规的方式去做,因为你的分叉进程会干扰Apache需要的各种资源,比如文件描述符和套接字,并且很难正确处理所有这些。相反,请尝试Apache2::SubProcess

答案 1 :(得分:0)

您可以考虑运行reverse proxy。你在后端有重量级进程处理资源密集型的东西,前端有轻量级进程来处理容易的东西,比如返回静态内容。你的繁重程序不会占用容易的东西,因为你不必等待他们完成他们正在做的任何事情。