„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich cURL-Anfragen asynchron in PHP ausführen?

Wie kann ich cURL-Anfragen asynchron in PHP ausführen?

Veröffentlicht am 08.11.2024
Durchsuche:362

How Can I Execute cURL Requests Asynchronously in PHP?

Asynchrone Curl-Anfrage in PHP

Die asynchrone Ausführung von Curl-Post-Anfragen in PHP kann die Leistung verbessern und mögliche Verzögerungen verhindern. So können Sie dies mit verschiedenen Methoden erreichen:

Verwenden von asynchronen cURL-Funktionen

Bei Verwendung von curl_multi_* können Sie mehrere cURL-Anfragen gleichzeitig ausführen. Hier ist ein Beispielcode:

$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);

Verwenden von pThreads

pThreads ist eine Threading-Bibliothek für PHP. So können Sie es für asynchrone Curl-Anfragen verwenden:

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();

Beide Methoden ermöglichen die asynchrone Ausführung von Curl-Anfragen und ermöglichen so eine bessere Leistung und eine effiziente Abwicklung paralleler Aufgaben.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3