欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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');

根据创建文件的名称可以看到,数据处理和通知用户是异步的




相关标签: 异步通知 socket