Melaksanakan permintaan curl secara berurutan boleh mengakibatkan masalah prestasi, terutamanya apabila berurusan dengan pelbagai sumber- permintaan intensif. Artikel ini meneroka teknik pelaksanaan tak segerak untuk mengoptimumkan pengendalian permintaan curl dalam PHP.
PHP menyediakan fungsi terbina dalam untuk pelaksanaan cURL tak segerak menggunakan arahan curl_multi_*. Berikut ialah versi semakan kod anda menggunakan pendekatan ini:
<code class="php">$mh = curl_multi_init(); curl_multi_add_handle($mh, $session); // session for the first request curl_multi_add_handle($mh, $ch); // ch for the second request 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); } } curl_multi_remove_handle($mh, $session); curl_multi_remove_handle($mh, $ch); curl_multi_close($mh);</code>
Pendekatan ini menggunakan curl_multi_exec() untuk melaksanakan kedua-dua pemegang curl secara serentak.
Pilihan lain ialah pThreads , perpustakaan threading untuk PHP. Berikut ialah contoh penggunaan pustaka ini:
<code class="php">class Request1 extends Thread { // ... your implementation } class Request2 extends Thread { // ... your implementation } $req1 = new Request1(); $req1->start(); $req2 = new Request2(); $req2->start();</code>
Kod ini mencipta dua objek benang dan memulakannya menggunakan kaedah start(). Setiap urutan melaksanakan permintaan cURLnya sendiri.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Permintaan cURL Serentak Secara Asynchronous dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!