function ag_enam_fetch_parallel($date, $commodities) { $multi = curl_multi_init(); $max_parallel = 5; // safe limit $chunks = array_chunk($commodities, $max_parallel, true); $results = []; foreach ($chunks as $chunk) { $channels = []; foreach ($chunk as $id => $name) { $payload = json_encode([ "date" => $date, "liveDate" => $date, "commodityIds" => [$id] ]); $ch = curl_init("https://api.agmarknet.gov.in/v1/prices-and-arrivals/commodity-market/daily-report-weighted"); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $payload, CURLOPT_HTTPHEADER => [ "Content-Type: application/json", "User-Agent: Mozilla/5.0" ], CURLOPT_TIMEOUT => 20, CURLOPT_CONNECTTIMEOUT => 10, ]); curl_multi_add_handle($multi, $ch); $channels[$id] = $ch; } $running = null; do { curl_multi_exec($multi, $running); curl_multi_select($multi); } while ($running > 0); foreach ($channels as $id => $ch) { $content = curl_multi_getcontent($ch); if ($content) { $results[$id] = json_decode($content, true); } else { $results[$id] = null; } curl_multi_remove_handle($multi, $ch); curl_close($ch); } usleep(300000); // 0.3 sec delay } curl_multi_close($multi); return $results; } Cotton | Mandibhav - Part 4

- Advertisement -

Browsing Category

Cotton