php中利用fsockopen实现异步执行

1、Client.php文件经过fsockopen,将请求转发到Server.phpphp

<?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;


2、Server.php代码以下浏览器

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

在这里,休眠了3秒中,模拟等待的效果,注意必须加上ignore_user_abort(true),避免客户端关闭浏览器,中止执行ide

这种方式的实现方式,其实是发送另一个http请求,会增长httpd的负载ui

相关文章
相关标签/搜索