API'den gelen cevap bazen beklenenden uzun surede geliyor ve CURLOPT_TIMEOUT ayari devreye giriyor. Ancak, bu timeout'u yonetmek istedigim bir senaryom var. Diyelim ki ilk istekte timeout oldu, ben otomatik olarak ayni istegi tekrar yapmak istiyorum. Fakat ayni anda birden fazla thread/process calisiyorsa, bu yeniden denemeler concurrency problemlerine neden oluyor gibi. kod su sekilde;
function fetchData($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
$response = curl_exec($ch);
$error = curl_errno($ch);
curl_close($ch);
if ($error) {
// Timeout veya baska bir hata
// Burada yeniden deneme yapmam gerekiyor
}
return $response;
}Bu yeniden deneme mekanizmasini duzgun bir sekilde nasil tasarlayabilirim? Ayrica ayni URL'e birden fazla process'in ayni anda yeniden deneme yapmasini engellemek icin onerileriniz var mi?