猿问

PHP 怎样异步处理

我写了个sleep10秒 但是一触发其他脚步地方都跟着延迟 请问怎么样不堵塞的情况下正常执行?

慕的地8271018
浏览 479回答 8
8回答

BIG阳

如果你用nginx,可以利用fastcgi处理 主要用两个方法: //这里写同步代码 fastcgi_finish_request(); set_time_limit(0); //这里写异步代码

浮云间

PHP本身是不支持异步,但你可以用协程去实现!

蝴蝶不菲

如果你这个异步处理不是立马要处理结果,你可以把要异步处理或者比较耗时的处理抽出来,单独放在一个action里。再在代码里面curl里面请求这个链接,超时时间设为1s(php curl最短只能设置为1s),设置不获取结果。。。

SMILET

PHP本身不支持异步,可以借助 Redis 队列或专业的队列服务,把耗时的操作放入队列中异步执行。

猛跑小猪

建议使用队列实现,主流的PHP框架(thinkphp,laravel等)基本都集成了队列功能或拥有成熟的队列插件,稳定且易于使用。不用自己去从0开发。

牛魔王的故事

可以采用pthread扩展

慕姐4208626

可以采用swoole一些扩展来实现

森栏

队列或PHP扩展 thread 类来实现
随时随地看视频慕课网APP
我要回答