php fsockopen异步通知--小计
程序员文章站
2024-01-28 10:57:22
...
比如用户注册需要发送邮件以及注册信息,而这个过程是通过异步通知(不采用定时脚本的方案),即,用户注册成功后,立即通知用户,而不需要等待短信或者邮件发送完成才进行通知,
传统的流程是:
用户申请注册->注册成功->数据处理(发送邮件、短信)->将结果返回给用户
异步通知的流程:
用户申请注册->注册成功->将结果返回给用户
| 同时,发送异步通知,进行数据处理(发送邮件、短信)
这个流程的话,不需要等待数据处理,降低了耗时
大概的实现逻辑如下:
创建register.php,代码如下:
//注册完成之后的数据处理
echo time().'<br>';
echo '数据处理<br>';
asynHandleDatas();
echo time().'<br>';
function asynHandleDatas() {
$fp=fsockopen('localhost',80,$error,$errorStr,5);
if(!$fp){
echo "$errorStr ($error)<br />\n";
}
fputs($fp,"GET /handleDatas.php?param=1\r\n"); #请求的url地址,用于异步数据处理
fclose($fp);
}
创建handleDatas.php,用于数据处理
file_put_contents('./data.log', $_GET['param']);
//逻辑处理,可以加sleep来进行测试,
fopen("./".time(),'w');
根据创建文件的名称可以看到,数据处理和通知用户是异步的