Ben farklı sunuculara dosya yüklemek için multi ile curl_multi kullanıyorum. Her sunucu yükleme gerekir birden fazla dosya var, bu yüzden her sunucu için bir curl_multi isteği var. Ben curl_multi kolları çalıştırdığınızda, ben gibi, bu yüzden aynı döngü tüm curl_multi kolları yürütme:
<?php
do {
$continue_running=false;
foreach($handles as $host => $handle) {
if(!is_resource($handle[0])) {
die("\nHandle is not a resource!\n");
}
if($running_{$host}) {
if(curl_multi_exec($handles[$host][0], $running_{$host}) != CURLM_OK) {
die("\ncurl_multi_exec failed!\n");
}
$continue_running=true;
}
if(!$running_{$host} && !$done_{$host}) {
echo "$host finished in ".(microtime(1)-$start)." seconds\n";
$done_{$host}=true;
}
}
} while ($continue_running);
?>
Ben merak ediyorum ne, kaç kez curl_multi_exec aslında bir kıvırmak istek çağrılacak var mı? Bu transfer her veri biraz çağrısında gerekiyor mu? Onun cpu bir sürü kullanarak ve ben düşünüyorum ki onun kendi "meşgul döngü" çok fazla çünkü. Yani uyku ekleyebilirsiniz (5); Her döngünün sonunda daha az cpu döngülerini kullanmak yapmak için, ya da bu oranda istekleri yavaşlatacaktır?
Ben curl_multi_select kullanmak istiyorum ama gidecekseniz birden curl_multi_execs işleniyor çünkü yapamıyorum.