workerman在收到消息时,使用php curl请求web页面执行对应的数据库操作,执行效率慢的问题

hellomoja

环境:web系统, workerman服务器(基于聊天室程序修改) 在同一台机器上
问题:1.workerman是否是单线程处理,只有等一条消息处理完才再处理另一条消息
2.在收到消息时,使用php curl请求web页面执行对应的数据库操作,消耗时间过长。从workerman发起curl请求到页面开始执行的时间平均0.3秒+,php页面的执行时间也比直接从浏览器访问消耗的时间长。

请问该情况下如何提高效率

5141 1 0
1个回答

walkor 打赏

1、workerman是多进程单线程,每个进程内的请求是串行处理,多个进程并行处理。

2、优化web页面,使它达到你的要求

  • hellomoja 2016-06-23

    使用的是聊天室源码修改,start_gateway.php里的count属性值为4,在收到login消息时sleep(10)测试,未发现进程并行处理。 是否与windows操作系统有关?

  • walkor 2016-06-23

    windows下是单进程的,参考主页说明

  • hellomoja 2016-06-23

    @1:谢谢,另一个问题,web页面效率并没有问题,问题在于从workerman开始调用curl到web服务器开始执行页面代码所消耗的时间过长。不知在workerman里调用curl执行业务代码的方式是否合适,还是在内部直接进行数据库操作

  • walkor 2016-06-23

    我不清楚你们的业务,所以无法回答是否合适。

  • hellomoja 2016-06-23

    @1:业务指的是稍微复杂点的数据库操作,并不是真正的业务,我指的是对数据库的相关操作只能用gateway提供的数据库操作接口进行处理,还是用web系统提供页面在workerman里调用curl去执行。

  • walkor 2016-06-23

    二者都可以。

年代过于久远,无法发表回答
×
🔝