PHP curl_multi_exec not starting multi threads the same time

Viewed 165

Using PHP curl_multi_init code

<?php
// create both cURL resources
$ch1 = curl_init();
$ch2 = curl_init();

// set URL and other appropriate options
curl_setopt($ch1, CURLOPT_URL, "http://example.com/test-3.php");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://example.com/test-3.php");
curl_setopt($ch2, CURLOPT_HEADER, 0);

//create the multiple cURL handle
$mh = curl_multi_init();

//add the two handles
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

//execute the multi handle
do {
    $status = curl_multi_exec($mh, $active);
    if ($active) {
        curl_multi_select($mh);
    }
} while ($active && $status == CURLM_OK);

//close the handles
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

?>

On URL http://example.com/test-3.php example PHP code:

sleep(5);
echo time();

When im running the PHP Multi INIT is taking me 10 seconds to finish process ( 5 + 5 sleep seconds ) normally was need to finish in 5 seconds not in 10 seconds because should start all 2 process the same time.

First time to play with this code so im not sure what im doing wrong on my test.

How i can make the process to start the same time?

0 Answers
Related