php中利用fsockopen實現異步執行

一、Client.php文件通過fsockopen,將請求轉發到Server.php

<?php
echo 'start' . time(), PHP_EOL;
$fsp = fsockopen('suiwnet.my', '80', $errno, $errstr, 30);
//這裏指定要請求的地址/CliTest/Server.php
$header = "GET /CliTest/Server.php HTTP/1.1\r\n";
$header .= "Host: suiwnet.my\r\n";
$header .= "Connection: Close\r\n\r\n";
fwrite($fsp, $header);
fclose($fsp);
echo 'end' . time(), PHP_EOL;


二、Server.php代碼如下

ignore_user_abort(TRUE);
$start = time();
sleep(3);
file_put_contents('D:/test.txt', $start . '-' . time());

在這裏,休眠了3秒中,模擬等待的效果,注意必須加上ignore_user_abort(true),避免客戶端關閉瀏覽器,停止執行

這種方式的實現方式,實際上是發送另外一個http請求,會增加httpd的負載


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章