Maison > Article > développement back-end > Comment puis-je exécuter des requêtes cURL de manière asynchrone en PHP ?
Requête Curl asynchrone en PHP
L'exécution de requêtes de publication curl de manière asynchrone en PHP peut améliorer les performances et éviter des retards potentiels. Voici comment y parvenir en utilisant différentes méthodes :
Utilisation des fonctions cURL asynchrones
Lorsque vous utilisez curl_multi_*, vous pouvez exécuter plusieurs requêtes cURL simultanément. Voici un exemple de code :
<code class="php">$curl = curl_init($request); curl_setopt($curl, CURLOPT_URL, $url_onfleet); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_USERPWD, $api_onfleet); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($curl, CURLOPT_ENCODING, ""); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, '{"destination":{"address":{"unparsed":"'.$pickup_address.'"},"notes":"'.$comments.'"},"recipients":[{"name":"'.$name.'","phone":"+61'.$phone.'","notes":"Number of riders: '.$riders.'"}],"completeBefore":'.$timestamp.',"pickupTask":"yes","autoAssign":{"mode":"distance"}}'); $mh = curl_multi_init(); curl_multi_add_handle($mh,$curl); $active = null; //execute the handles do { $mrc = curl_multi_exec($mh, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); while ($active && $mrc == CURLM_OK) { if (curl_multi_select($mh) != -1) { do { $mrc = curl_multi_exec($mh, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); } } //close the handles curl_multi_remove_handle($mh, $curl); curl_multi_close($mh);</code>
Utilisation de pThreads
pThreads est une bibliothèque de threads pour PHP. Voici comment vous pouvez l'utiliser pour les requêtes curl asynchrones :
<code class="php">class Request1 extends Thread { public function run() { // Execute the first cURL request here } } class Request2 extends Thread { public function run() { // Execute the second cURL request here } } $req1 = new Request1(); $req1->start(); $req2 = new Request2(); $req2->start();</code>
Les deux méthodes permettent l'exécution asynchrone des requêtes curl, permettant de meilleures performances et une gestion efficace des tâches parallèles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!