何为异步?为什么要用异步?
官方解释:异步处理就是按照不同步的程序处理问题。异步处理与同步处理是对立的,而产生他们的是多线程或者多进程。
通俗来讲,就是提高执行效率。让代码可以同时运行。
为什么要用异步?
1耗时操作,不要阻塞代码继续执行
2.超时时间内返回给通信的对方
现在流行的解决方案有两个
1.消息队列
2.swoole workman等异步框架
可是真的必要用这两种方案吗?很多时候我们只是跟风去给自己的代码选择方案,却没有认真想想我们为何这样选型?
天下武功,不是厉害的武功就一定适合你。
异步实战
好比我们经常做的需求,导到大量数据到文件。
我们在web端发起请求,会一直卡在那里,直到处理完成得到返回才结束脚本执行。
想想我们会怎么做?
1.增大执行时间
2.shell下执行脚本
3.发消息给service 执行之后结果回调回来
首先1的方案很多时候会造成进程卡死。
2的方案要记录flag记录你的异常点
3的方案要引入异步框架,要些service代码
简单的异步
其实异步很简单,我们做的导出数据,其实你的底层代码也是分页去读取数据
那么,你的代码可以这么撸
1 | <?php |
其实这时候脚本就会在后台自己运行了,但是已经返回给客户端结果了。
其实异步处理有的时候也是很简单的。
总结
凡是要多想想场景,找对属于自己的方案,不要跟着潮流走。
本集终
不对忘记了,此处应该是插播广告时间啊!
编程小白想要学习编程的可以观看原创教程视频
http://lwphp.ankewk.cn/