lscgzwd / yii2-swoole

yii2 run with swoole
Other
78 stars 26 forks source link

swoole中不允许阻塞代码问题 #4

Open gouchaoer opened 7 years ago

gouchaoer commented 7 years ago

我们知道swoole只会开启n个worker,一旦代码中有阻塞那么同worker下的别的请求就回饥饿,这是不允许的。因为php-fpm可以开几百上千个,阻塞并没有问题。是否考虑把yii2的io(比如redis、db之类的)换成协程版本?

lscgzwd commented 7 years ago

swoole也可以开启多worker, 如果把db redis都换了,那么仅仅是用yii的路由功能了,用YII的意义就没有了,不如自己实现简单的MVC了,如果直接改yii2 核实 ,改动会比较大,后续升级会很 麻烦,我们项目中也考虑过协程,但是考虑到团队成员能力不一,所以没实施,目前生产使用的是类php-fpm方式,开启了128个worker

gouchaoer commented 7 years ago

我也是先给自己实现一个完全协程的时候发现刚好有人开始做了:https://github.com/deepziyu/yii2-swoole

lscgzwd commented 7 years ago

改动太大了, 对开发者还是有感的,用不了原生的PDO安全特性了,需要开发者严格限制数据格式,做纯内网系统,或者有强团队规则可以考虑。