我最近開發商消失,我需要做一個小的變化到我的網站。正確使用ForkManager和Perl?
這是我會提到代碼:
my $process = scalar(@rows);
$process = 500 if $process > 500;
my $pm = Parallel::ForkManager->new($process);
這是一個Perl腳本,通過cron作業從API系統擦傷的數據代碼。每次運行cron作業時,都會爲該文件打開大量進程。例如,cron-job.pl
將運行100次以上。
它打開的實例數量取決於需要檢查的數據量,因此每次都會有所不同,但從未超過500.上面的代碼是否會導致這種情況發生?
我不熟悉使用ForkManager,但是從我做的研究看來,它多次運行相同的文件,這樣它將從API系統中提取多個數據流,全部在同時。
的問題是,情況正在運行的數量顯著放緩服務器。爲了降低實例的數量,是不是真的就這麼簡單改變500
到一個較低的數字還是我失去了一些東西?
這是max_concurrent_進程。如果你告訴它,它仍然會做10000次,但在上面的例子中 - 一次只能運行500次。 – Sobrique 2014-11-23 23:11:11