Comment puis-je exécuter des requêtes cURL de manière asynchrone en PHP ?

Barbara Streisand
Libérer: 2024-11-01 11:16:30
original
358 Les gens l'ont consulté

How Can I Execute cURL Requests Asynchronously in 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, '{&quot;destination&quot;:{&quot;address&quot;:{&quot;unparsed&quot;:&quot;'.$pickup_address.'&quot;},&quot;notes&quot;:&quot;'.$comments.'&quot;},&quot;recipients&quot;:[{&quot;name&quot;:&quot;'.$name.'&quot;,&quot;phone&quot;:&quot;+61'.$phone.'&quot;,&quot;notes&quot;:&quot;Number of riders: '.$riders.'&quot;}],&quot;completeBefore&quot;:'.$timestamp.',&quot;pickupTask&quot;:&quot;yes&quot;,&quot;autoAssign&quot;:{&quot;mode&quot;:&quot;distance&quot;}}');

$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 &amp;&amp; $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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!