1

私の英語でごめんなさい...

わかりました、問題です。Parallel::ForkManager を使用して、PERL スクリプトの fork プロセスを制限しています。

例:

$pm = Parallel::ForkManager->new(3);

[...]
while ($new_client = $httpdaemon->accept())
{
    $pm->start and next;

    # do smth with request in here

    $pm->finish;
}

子供たちが正常に分岐し、正常に終了していることがわかりますが、この場合、MAX - 3 よりも多くの要求を処理できません。

4 番目の要求 (前の 3 の後) で、スクリプトは新しい子を生成したくない (ハングする)

? Parallel::ForkManager->new(3) - これはつまり - 同時に最大 3 つですよね?

ご存知のように、3 つのリモート クライアントを同時に処理したいのですが、それらが完了したら、他の 3 つで同じことを行います。

解決策が見つからない場合は、代わりに Proc::Queue を使用します....

4

2 に答える 2