Closed krissss closed 6 years ago
非常感谢,注释确实要规范一下,待我把全部需要的功能稳定下来会慢慢完善这些,后续如果项目使用的人很多,我忙不过来时,我会联系大家来一起开发的,谢谢。
mysql/redis的io并发没问题么。。。一个worker进程同时处理n个请求,每个请求阻塞在io的时候同进程下的别的worker是得不到调度的,比php-fpm情况要糟,能在压测里加上mysql/redis的io逻辑么?
现在解决方案无非半协程/协程
这里你有几个认知错误,首先Swoole是多进程模型,一个worker同一时刻只会处理一个请求,然后是MixPHP的mysql/redis的连接是在每个worker进程内创建的,所以不同的请求之间并不会相互影响,MixPHP现在并没有使用协程,现阶段只想在同步方面做到更好。
同意暂时不使用协程,协程的开发方式会增加开发难度,虽然swoole官方有方案可以用同步的方式写协程,但是对于不懂的人来说协程方案从理解上就带来了很大的困难,前期没必要加上。
等等。。。swoole1.x都异步框架了,tcp server同时可以保持百万连接,http server我看demo也是异步的啊,怎么可以一个worker进程只能同时处理一个request,而且zamphp/swooledistributed之类的基于1.x的半协程都是可以一个worker同时处理很多请求的
如果你说的代码里 on('request',function(){}); 这样的方式是异步的话,那是的,但是这与单个worker同时处理一个request并没有关联,swoole在worker内并没有使用多线程,这个我觉得你还是写代码去试试就知道了,还是要去实践。Reactor、Worker、Task的关系:https://wiki.swoole.com/wiki/page/163.html ,我只能帮你到这里了,加油。
class下的属性和方法建议注释采用规范的phpDoc形式,至少囊括
@var
@param
@return
这些吧,便于编辑器(像phpstorm)等提供代码提示的功能。 如果有需要,本人愿意提供开发帮忙,本人对 Yii2 框架非常熟悉,对 swoole 也有所使用,所以很看好该项目。