Herkes i deneyim ben biraz cron konuda bana yardımcı olabilir merak ediyorum
Sorun yükü 5'e kadar başak olabilir, ve CPU kullanımı çift çekirdekli 356Mb RAM ile 'Xeon L5410@2.33GHz' üzerinde,% 40 atlayabilir, ve ben kodu verdiği nereye emin değilim ve hangi yolu bunu önlemek için. Aşağıdaki kod örneği
//Note $productFile can be 40Mb .gz compressed, 700Mb uncompressed (xml text file) if (file_exists($productFile)) {
$fResponse = gzopen($productFile, "r");
if ($fResponse) {
while (!gzeof($fResponse)) {
$sResponse = "";
$chunkSize = 10000;
while (!gzeof($fResponse) && (strlen($sResponse) < $chunkSize)) {
$sResponse .= gzgets($fResponse, 4096);
}
$new_page .= $sResponse;
$sResponse = "";
$thisOffset = 0;
unset($matches);
if (strlen($new_page) > 0) {
//Emptying
if (!(strstr($new_page, "<product "))) {
$new_page = "";
}
while (preg_match("/<product [^>]*>.*<\/product>/Uis", $new_page, $matches, PREG_OFFSET_CAPTURE, $thisOffset)) {
$thisOffset = $matches[0][1];
$thisLength = strlen($matches[0][0]);
$thisOffset = $thisOffset + $thisLength;
$new_page = substr($new_page, $thisOffset-1);
$thisOffset = 0;
$new_page_match = $matches[0][0];
//- Save collected data here -//
}
}//End while loop
}
}
gzclose($fResponse);
}
}
$ ChunkSize - aşağı bellek kullanımını tutmak ve düzenli ifadeyi kolaylaştırmak için mümkün olduğunca küçük olmalı, ya da çalıştırmak için çok uzun sürüyor kod önlemek için büyük olmalıdır.
40.000 maçlarda yük / CPU kramponları ile. Yani herkes Crons aracılığıyla geniş besleme yüklemelerini yönetmek konusunda herhangi bir tavsiye var.
Yardımlarınız için şimdiden teşekkürler