环境:web系统, workerman服务器(基于聊天室程序修改) 在同一台机器上 问题:1.workerman是否是单线程处理,只有等一条消息处理完才再处理另一条消息 2.在收到消息时,使用php curl请求web页面执行对应的数据库操作,消耗时间过长。从workerman发起curl请求到页面开始执行的时间平均0.3秒+,php页面的执行时间也比直接从浏览器访问消耗的时间长。
请问该情况下如何提高效率
1、workerman是多进程单线程,每个进程内的请求是串行处理,多个进程并行处理。
2、优化web页面,使它达到你的要求
使用的是聊天室源码修改,start_gateway.php里的count属性值为4,在收到login消息时sleep(10)测试,未发现进程并行处理。 是否与windows操作系统有关?
windows下是单进程的,参考主页说明
@1:谢谢,另一个问题,web页面效率并没有问题,问题在于从workerman开始调用curl到web服务器开始执行页面代码所消耗的时间过长。不知在workerman里调用curl执行业务代码的方式是否合适,还是在内部直接进行数据库操作
我不清楚你们的业务,所以无法回答是否合适。
@1:业务指的是稍微复杂点的数据库操作,并不是真正的业务,我指的是对数据库的相关操作只能用gateway提供的数据库操作接口进行处理,还是用web系统提供页面在workerman里调用curl去执行。
二者都可以。
1、workerman是多进程单线程,每个进程内的请求是串行处理,多个进程并行处理。
2、优化web页面,使它达到你的要求
使用的是聊天室源码修改,start_gateway.php里的count属性值为4,在收到login消息时sleep(10)测试,未发现进程并行处理。 是否与windows操作系统有关?
windows下是单进程的,参考主页说明
@1:谢谢,另一个问题,web页面效率并没有问题,问题在于从workerman开始调用curl到web服务器开始执行页面代码所消耗的时间过长。不知在workerman里调用curl执行业务代码的方式是否合适,还是在内部直接进行数据库操作
我不清楚你们的业务,所以无法回答是否合适。
@1:业务指的是稍微复杂点的数据库操作,并不是真正的业务,我指的是对数据库的相关操作只能用gateway提供的数据库操作接口进行处理,还是用web系统提供页面在workerman里调用curl去执行。
二者都可以。