3

mod_perl2 の下で fork することに対する反対意見はありますか? mod_perl2 でバックグラウンド プロセスを実行するには、別の方法を使用する必要がありますか?

4

2 に答える 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 に答える