Heim > Artikel > Backend-Entwicklung > Mehrere gängige Methoden zur asynchronen Ausführung in PHP
In diesem Artikel werden hauptsächlich vier gängige Methoden zur asynchronen Ausführung von PHP vorgestellt, damit Sie die asynchronen Aufrufmethoden von PHP besser analysieren und kompetent beherrschen können. Ich hoffe, es hilft allen.
Dieser Artikel beschreibt die asynchrone PHP-Aufrufmethode und stellt sie Ihnen als Referenz zur Verfügung. Der spezifische Inhalt ist wie folgt
Der Client und der Server sind durch Das HTTP-Protokoll Für die Verbindungskommunikation initiiert der Client eine Anfrage, der Server führt nach Erhalt der Anfrage eine Verarbeitung durch und gibt das Verarbeitungsergebnis zurück.
Manchmal muss der Server einen zeitaufwändigen Vorgang ausführen und das Ergebnis dieses Vorgangs muss nicht an den Client zurückgegeben werden. Da PHP jedoch synchron ausgeführt wird, muss der Client auf die Verarbeitung des Dienstes warten, bevor er mit dem nächsten Schritt fortfahren kann.
Daher eignen sich zeitaufwändige Vorgänge für die asynchrone Ausführung. Nachdem der Server die Anforderung erhalten hat, kehrt er nach der Verarbeitung der vom Client benötigten Daten zurück und führt dann zeitaufwändige Vorgänge asynchron auf dem Server aus.
1. Verwenden Sie das Ajax- und img-Tag
. Fügen Sie Ajax-Code oder img-Tag in den vom Server zurückgegebenen HTML-Code ein.
Vorteile: Einfache Implementierung, der Server muss keine Aufrufe ausführen
Nachteile: Während der Ausführung wird der Der Browser befindet sich immer im Ladezustand, daher ist diese Methode kein echter asynchroner Aufruf.
$.get("doRequest.php", { name: "fdipzone"} ); <img src="doRequest.php?name=fdipzone">
2. Verwenden Sie popen
Verwenden Sie popen, um Befehle auszuführen, Syntax:
// popen — 打开进程文件指针 resource popen ( string $command , string $mode ) pclose(popen('php /home/fdipzone/doRequest.php &', 'r'));
Vorteile: Schnelle Ausführungsgeschwindigkeit
Nachteile:
1). Maschine
2). Sie können nicht viele Parameter übergeben
3). . Wenn die Anzahl der Besuche hoch ist, werden viele Prozesse erstellt
3. Setzen Sie das Curl-Timeout CURLOPT_TIMEOUT auf 1 (Das Minimum ist 1), daher muss der Client 1 Sekunde warten Den Header-Teil selbst erstellen.
<?php $ch = curl_init(); $curl_opt = array( CURLOPT_URL, 'http://www.example.com/doRequest.php' CURLOPT_RETURNTRANSFER,1, CURLOPT_TIMEOUT,1 ); curl_setopt_array($ch, $curl_opt); curl_exec($ch); curl_close($ch); ?>
verwandte Empfehlung:
<?php $url = 'http://www.example.com/doRequest.php'; $param = array( 'name'=>'fdipzone', 'gender'=>'male', 'age'=>30 ); doRequest($url, $param); function doRequest($url, $param=array()){ $urlinfo = parse_url($url); $host = $urlinfo['host']; $path = $urlinfo['path']; $query = isset($param)? http_build_query($param) : ''; $port = 80; $errno = 0; $errstr = ''; $timeout = 10; $fp = fsockopen($host, $port, $errno, $errstr, $timeout); $out = "POST ".$path." HTTP/1.1\r\n"; $out .= "host:".$host."\r\n"; $out .= "content-length:".strlen($query)."\r\n"; $out .= "content-type:application/x-www-form-urlencoded\r\n"; $out .= "connection:close\r\n\r\n"; $out .= $query; fputs($fp, $out); fclose($fp); } ?>
Swoole verwenden, um Webseiten asynchron zu erfassen und praktisch zu teilen
ignore_user_abort(true); // 忽略客户端断开 set_time_limit(0); // 设置执行不超时
thinkphp5 und swoole werden mithilfe von SMTP implementiert. Beispiele für asynchrones MassenmailingEinführung in Swoole-Entwicklungspunkte
Das obige ist der detaillierte Inhalt vonMehrere gängige Methoden zur asynchronen Ausführung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!