PHP 程序执行实现异步操作

2016/06/28
开发中,经常会遇到很多异步操作的事情 
比如发送邮件,比如客户端提交的大的数据时,
这些都是很耗时的工作的,这时如果能用到异步操作,那用户的体验就非常的好了
已应用到实例中
博文都是原创  复制请谨慎

利用fastcgi_finish_request()函数实现异步操作

	echo '结束客户端请求';
	fastcgi_finish_request();
	sleep(3);
	for ($i=0; $i <20 ; $i++) { //模拟耗时
		sleep(1);
		file_put_contents('demo.txt.json', $i.'hello',FILE_APPEND);
	}

利用php多进程实现异步

	$name = I('name');
	$ceshi = M('ceshi');

	$pid = pcntl_fork(); // 一旦调用成功,事情就变得有些不同了
	if ($pid == -1) {
		die('fork failed');
	} else if ($pid == 0) {
		$demo['name'] = '子'.$name;
		$ceshi->add( $demo ); //入库操作
		for ($i=0; $i <10 ; $i++) { //模拟耗时
			sleep(1);
			file_put_contents('demo.txt.json', $i.'hello',FILE_APPEND);
		}
		exit(0); //子进程执行完毕退出
	} else {
		echo '运行完毕';
		$data['name'] = '主'.$name;
		$ceshi->add( $data );//入库操作
		exit(0);
	}

利用php-resque队列的方式进行实现

	去github上搜索下,文档清晰照搬就是

利用swoole搭建服务

	去github上搜索下,文档清晰照搬就是
	最主要的一点就是swoole要守护进程  
	写函数链接到该服务器  然后发送消息  里面任务自己写。不会google

利用workerman消息队列

	[消息队列](https://github.com/walkor/gatewayworker)
	这个更简单 开始进程默认32个  写任务 执行值 发送者

最后说一个好玩的 supervirsor 定时任务 生成守护进程 进程管理器

	Supervisor (http://supervisord.org) 
	是一个用 Python 写的进程管理工具
	可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程
	百度或者谷歌下愉快的玩耍吧

个人随笔

安静的等待,你若盛开,蝴蝶自来

承接高质量 网站开发 app开发 如有需要请点击About联系