mod_perl2 の下で fork することに対する反対意見はありますか? mod_perl2 でバックグラウンド プロセスを実行するには、別の方法を使用する必要がありますか?
2 に答える
4
私は通常、クリーンアップ ハンドラーを使用して、HTTP 要求の完了後に必要な処理を実行します。
$r->push_handlers( PerlCleanupHandler => sub { print "I'm doing stuff!" } );
本当にフォークを行う必要がある場合は、通常の方法で行うべきではありません。なぜなら、フォークされたプロセスは、ファイル記述子やソケットなど、Apache が必要とするさまざまなリソースに干渉し、これらすべてを正しく処理するのが非常に難しいためです。代わりに、 Apache2::SubProcessを試してください。
于 2010-03-31T17:05:01.237 に答える
0
リバース プロキシの実行を検討してください。バックエンドにはリソースを大量に消費するものを処理する重いプロセスがあり、フロントには軽量のプロセスがあり、静的コンテンツを返すなどの簡単なものを処理します。あなたの重いプロセスは、彼らが何をしていても完了するのを待つ必要がないので、簡単なものを縛りません.
于 2010-04-01T00:01:35.370 に答える