PHP异步非阻塞之路
admin
2023-01-28 11:40:00
0

需求

一个简单的需求,提交大量数据到远程服务器,此时并不需要等待返回。
另一个需求,获取API数据,同时查询数据库,并行处理,加快响应速度。

配置问题

set_time_limit
ignore_user_abort

fastcgi_finish_request

只是结束会话后继续执行,并没有并发,勉强非阻塞

curl

无法非阻塞,只能等待,可以并发
https://github.com/guzzle/guzzle/issues/1127

fsockopen

坑最多的地方
首先,fwrite并不都是成功的,返回写入的字节数,并不是全部
其次,PHP的bug,stream_set_blocking设置非阻塞,须等待才能写入,7.0.x以上才解决,https://github.com/php/php-src/pull/2330

Warning: fwrite(): SSL operation failed with code 1. OpenSSL Error messages: error: 1409F07F: SSL routines: SSL3_WRITE_PENDING: bad write retry

再次,Keep-Alive的坑,需要比对Content-Length和返回长度,然后断开
最后,Transfer-Coding的值如果为Chunked,需要拼接返回结果
pfsockopen,需要使用Keep-Alive,并且不能close链接

其他

异步框架:swoole。。。
计划任务:redis+crond
pcntl:开启新进程
popen:调用外部程序

最终还是使用了popen开启新进程

上一篇:dokuwiki安装问题

下一篇:PHP -- 编译安装

相关内容

热门资讯

终于懂了“熊猫炸金花到底有挂吗... 网上科普关于“熊猫炸金花有没有挂”话题很是火热,小编也是针对熊猫炸金花作*弊开挂的方法以及开挂对应的...
终于懂了“樱花牛牛有没有挂?”... 家人们!今天小编来为大家解答樱花牛牛透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里买很...
玩家分享攻略“老友内蒙古麻将开... 网上科普关于“老友内蒙古麻将有没有挂”话题很是火热,小编也是针对老友内蒙古麻将作*弊开挂的方法以及开...
最新引进“可乐麻将开挂神器?”... 最新引进“可乐麻将开挂神器?”(确实真的有挂)您好,可乐麻将这个游戏其实有挂的,确实是有挂的,需要了...
终于明白“乐逍遥跑胡子有挂吗?... 您好:乐逍遥跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款...
最新引进“情怀莆仙真的有挂吗?... 家人们!今天小编来为大家解答情怀莆仙透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里买很...
终于了解“战皇牛牛开挂神器?”... 家人们!今天小编来为大家解答战皇牛牛透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪里买很...
玩家分享攻略“新三哥玩十三张开... 家人们!今天小编来为大家解答新三哥玩十三张透视挂怎么安装这个问题咨询软件客服徽9752949的挂在哪...
【第一资讯】“微乐安徽麻将真的... 您好:微乐安徽麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款...
今日重磅消息“心悦麻将有没有挂... 您好:心悦麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游戏...