Si vous utilisez Windows, vous pouvez utiliser le curl_multi:
// create cURL resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://domain/path/to/script");
curl_setopt($ch, CURLOPT_HEADER, 0);
//create the multiple cURL handle
$mh = curl_multi_init();
//add the handle
curl_multi_add_handle($mh,$ch);
// execute the handle
curl_multi_exec($mh,$running);
Mais si vous utilisez Linux, vous pouvez bifurquer trop:
$pid = pcntl_fork();
if ($pid == -1) {
die('could not fork');
} else if ($pid) { // mother process
// continue doing stuff here
echo 'Child labor ';
echo 'is acceptable ';
echo 'in programming';
// wait for the child to finish
pcntl_wait($status);
} else { // child process
// do big loop here
while (...) {
sleep(1000);
}
}
le script fonctionnera pour un heure à l'intérieur d'une boucle, cette boucle va-t-elle déclencher la boucle et sortir? Je ne veux pas que la connexion s'établisse pendant plus d'une seconde –
Bien curl ne se déconnectera pas avant que le script appelant (celui qui s'exécute rapidement) n'existe. Cependant, votre script appelé (celui qui s'exécute lentement) pourrait être tué par Apache quand CURL ferme la connexion. –
Pas réellement quand set_time_limit est mis à zéro et ignore_user_abort mis à vrai –