background image

 

PHP

入门 PHP 实现异步操作

一般来说 PHP 适用的场合是 web 页面展示等耗时比较短的任务,如果对于比较花时间的
操作如 resize 图片、大数据导入、批量发送 EDM、SMS 等,就很容易出现操作超时情况
1.为啥 PHP 需要异步操作?
一般来说 PHP 适用的场合是 web 页面展示等耗时比较短的任务,如果对于比较花时间的
操作如 resize 图片、大数据导入、批量发送 EDM、SMS 等,就很容易出现操作超时情况。你
可以说我可以设置无限超时时间,等等你也要知道 PHP 有一个工作模式是 fastcgi,PHP
无限不超时,不代表 fastcgi

……

相应不超时

如果你还想说要 fastcgi 相应永不超时,我建

……

议你应该跟你们的运维人员讨论去
这个时候异步的操作就发挥他的作用了,由于是非阻塞操作,操作会即时返回,然后在
后台再慢慢干活。管你超时不超时的,我就没有在当前的进程/线程下干活。看吧是不是很

……

美好,不过其实这也是个坑
2.PHP 可以实现异步操作吗?
答案是肯定的,不过网上各种的纯 PHP 实现得就有点别扭了。socket 模式、挂起进程模式、
有的还直接 fork 进程。很好,各路神仙各显神通。如果运维人员看到的话,一定会×××××
你们的,不把 web server

……

跑死才怪

那还有其他更好的方法去实现这个异步操作的可能么?有,现在我们只有想怎么开外挂