Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich in PHP mehrere cURL-Anfragen gleichzeitig ausführen?

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

DDD
DDDOriginal
2024-10-30 14:09:11662Durchsuche

How Can I Execute Multiple cURL Requests Simultaneously in PHP?

Asynchrone Curl-Anfragen in PHP

In PHP kann die gleichzeitige Ausführung mehrerer cURL-Anfragen eine Herausforderung sein. Dies kann zu inkonsistentem Verhalten führen und einige Anfragen können nicht ausgeführt werden. Um dieses Problem anzugehen, gibt es zwei Hauptansätze: die Verwendung asynchroner/paralleler Verarbeitungsbibliotheken oder die Verwendung der integrierten asynchronen cURL-Funktionen.

1. Asynchrones cURL

Um die integrierten Funktionen zu nutzen, können Sie Folgendes implementieren:

<code class="php">$mh = curl_multi_init();
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);

$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, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);</code>

2. pThreads

pThreads ist eine beliebte Threading-Bibliothek für PHP. So verwenden Sie es:

<code class="php">class Request1 extends Thread {
    public function run() {
        // Execute the first curl request
    }
}


class Request2 extends Thread {
    public function run() {
        // Execute the second curl request
    }
}

$req1 = new Request1();
$req1->start();
$req2 = new Request2();
$req2->start();</code>

Mit diesen Ansätzen können Sie mehrere cURL-Anfragen gleichzeitig ausführen und so sicherstellen, dass sie alle zeitnah ausgeführt werden.

Das obige ist der detaillierte Inhalt vonWie kann ich in PHP mehrere cURL-Anfragen gleichzeitig ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn