为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 怎样异步处理

PHP 怎样异步处理

PHP
慕的地8271018 2019-03-10 08:36:11
我写了个sleep10秒 但是一触发其他脚步地方都跟着延迟 请问怎么样不堵塞的情况下正常执行?
查看完整描述

8 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

如果你用nginx,可以利用fastcgi处理

主要用两个方法:

//这里写同步代码

fastcgi_finish_request();
set_time_limit(0);

//这里写异步代码
查看完整回答
反对 回复 2019-03-18
?
浮云间

TA贡献1829条经验 获得超4个赞

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

查看完整回答
反对 回复 2019-03-18
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

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

查看完整回答
反对 回复 2019-03-18
?
SMILET

TA贡献1796条经验 获得超4个赞

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

查看完整回答
反对 回复 2019-03-18
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

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

查看完整回答
反对 回复 2019-03-18
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

可以采用pthread扩展

查看完整回答
反对 回复 2019-03-18
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

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

查看完整回答
反对 回复 2019-03-18
?
森栏

TA贡献1810条经验 获得超5个赞

队列或PHP扩展 thread 类来实现

查看完整回答
反对 回复 2019-03-18
  • 8 回答
  • 0 关注
  • 478 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信