PRELOADER

当前文章 : 《php的异步真的必须要队列和swoole吗》

12/17/2018 —— 

何为异步?为什么要用异步?

官方解释:异步处理就是按照不同步的程序处理问题。异步处理与同步处理是对立的,而产生他们的是多线程或者多进程。
通俗来讲,就是提高执行效率。让代码可以同时运行。
为什么要用异步?
1耗时操作,不要阻塞代码继续执行
2.超时时间内返回给通信的对方


现在流行的解决方案有两个
1.消息队列
2.swoole workman等异步框架

可是真的必要用这两种方案吗?很多时候我们只是跟风去给自己的代码选择方案,却没有认真想想我们为何这样选型?
天下武功,不是厉害的武功就一定适合你。


异步实战

好比我们经常做的需求,导到大量数据到文件。
我们在web端发起请求,会一直卡在那里,直到处理完成得到返回才结束脚本执行。
想想我们会怎么做?
1.增大执行时间
2.shell下执行脚本
3.发消息给service 执行之后结果回调回来

首先1的方案很多时候会造成进程卡死。
2的方案要记录flag记录你的异常点
3的方案要引入异步框架,要些service代码


简单的异步

其实异步很简单,我们做的导出数据,其实你的底层代码也是分页去读取数据

那么,你的代码可以这么撸

1
2
3
4
5
6
7
8
9
<?php

if(!$this->check())
echo '可以导出';

fastcgi_finish_request();
$data::get();

?>

其实这时候脚本就会在后台自己运行了,但是已经返回给客户端结果了。
其实异步处理有的时候也是很简单的。


总结

凡是要多想想场景,找对属于自己的方案,不要跟着潮流走。

本集终
不对忘记了,此处应该是插播广告时间啊!
编程小白想要学习编程的可以观看原创教程视频
http://lwphp.ankewk.cn/