一度にフォークしたプロセスの量を制御するために、perl のForks::Superモジュールを使用しています。これが私のコードです:
for(....) {
my $pid = fork { max_proc => 10, on_busy=> "queue", sub => \&process_url, args=>[$url_h,$q_fh,$q_filename,$urls->{$url_h->{'url_id'}},\%fh] };
}
waitall;
ただし、問題は、ループ内の 100 個のアイテム (それぞれがファイルに書き出される) から開始し、ループ後の waitall の後、ファイルに 60 行しか書き込まれない可能性があることです。問題が何であるかを知っている人はいますか?私はファイルをロックしているので、それは問題ではありません。ありがとう!