Ben Fedora üzerinde PHP 5.2 çalıştırıyorum ve ben program çalışmayı durdurdu ve yeniden başlatılması gerekiyor demektir, benim döngü yaklaşık 1000 yineleme sonra bu uyarıyı almaya devam. Ben 1000 yineleme sonra çıkmak için bu kurmak ve kısa bir süre sonra bir cron vasıtasıyla yeniden, ama bu dışarı korkak yolunda gibi hissediyor olabilir. Döngü şöyle; O get_load()
bir file_get_contents()
çağrısı preforms eklemek gerekir.
while ($row = select_row($sql))
{
while (($load = get_load()) > 10)
{
echo "Going to sleep (load: ".$load.")\n";
sleep(60*3);
}
$id = $row['id'];
foreach ($sizes as $abbr=>$size)
{
if($row[$size] != "yes")
{
continue;
}
$filename = "/images/".$abbr."/".$id.".jpg";
$tmp_file = "/tmp/".$id.".jpg";
if ($size == "large")
{
//We want to progressively interlace our large bookcovers because it saves on filesave above 10K.
$cmd = "convert -strip -interlace Plane ".$filename." ".$tmp_file;
}
else
{
$cmd = "convert -strip ".$filename." ".$tmp_file;
}
$convert = popen($cmd." 2>&1", "r");
if (is_resource($convert))
{
echo fgets($convert);
if(pclose($convert) == 0)
{
//Upload converted file to remote server
}
unlink($tmp_file);
}
}
Edit: İlk iki cevapları okuduktan sonra, benim sorun ile alakalı değildi yükleme dosyası kodunu alarak, benim pclose()
bildirimde çıkardı fark etti. Benim kodda göründüğü gibi pclose()
koyun.
Ek düzenleme: get_load()
olarak istenen gönderildi
function get_load()
{
$load = explode(" ", file_get_contents("/proc/loadavg"));
return $load[0];
}