1:Timer定时执行逻辑,会导致主进程阻塞吗? 2:如果1000个定时器定时分别执行逻辑,会导致主进程阻塞吗? 3:战斗房间的回合结果计算,我想用Timer驱动,是否会有隐患?
workerman主进程不处理业务逻辑,无法添加定时器。 处理业务的都是子进程。如果定时器里有运行阻塞代码是会阻塞当前进程的,阻塞时间取决于阻塞代码执行时间。 定时器注意事项参考手册 http://doc.workerman.net/timer/notice.html 可以用Timer来驱动
我使用的是GatewayWorker,设置一个bussinessWorker进程数量为1,在Events.onWorkerStart里new一个静态变量类,这静态变量类一个Timer就是一个战斗房间,定时计算获得结果格子推送给客户端。这样即使是1000个房间(timer),应该都不会导致Events.onMessage被阻塞吧?
根据上面说的是否阻塞取决于业务代码
比如定时器里访问mysql等就会阻塞
如果只是纯内存计算就不会阻塞
@1:好的。纯粹内存计算。
workerman主进程不处理业务逻辑,无法添加定时器。
处理业务的都是子进程。如果定时器里有运行阻塞代码是会阻塞当前进程的,阻塞时间取决于阻塞代码执行时间。
定时器注意事项参考手册 http://doc.workerman.net/timer/notice.html
可以用Timer来驱动
我使用的是GatewayWorker,设置一个bussinessWorker进程数量为1,在Events.onWorkerStart里new一个静态变量类,这静态变量类一个Timer就是一个战斗房间,定时计算获得结果格子推送给客户端。这样即使是1000个房间(timer),应该都不会导致Events.onMessage被阻塞吧?
根据上面说的是否阻塞取决于业务代码
比如定时器里访问mysql等就会阻塞
如果只是纯内存计算就不会阻塞
@1:好的。纯粹内存计算。