gatwayworker定时器问题

gc_mike

gatwayworker单独开一个进程来添加或删除定时器,所有业务需要添加定时器都请求到这个进程,我想知道的是如果同一秒定时器过多的话,单个进程能不能抗的住,定时任务是串行执行的吗?如果是串行的,务必会阻塞后面的任务,导致定时器不准,那么单进程同时能容纳多少个定时器任务?如果不行,是否有其它解决办法。我是用来做棋牌游戏的。

3123 1 0
1个回答

walkor

单个进程内的定时任务是串行执行的,定时器内的业务如果有阻塞,并且超过下一个定时周期,会导致下一个周期的定时任务延迟。所以定时器里最好控制好执行时间。workerman里单个进程内定时任务数量没有限制,但仍然受限于系统内存以及php.ini配置的单个php进程内存使用限制。

定时器不一定非要都放在一个进程里,如果可以的话可以放到多个进程里

http://doc.workerman.net/315181

  • gc_mike 2018-04-25

    非常感谢walkor大神的回复,现在遇到的问题是,多进程定时间器,就要确保同一房间的玩家路由到同一个进程内,我是想通过房间号把同一房间玩家统一路由到一个进程,但是玩家操作进入房间是先把玩家信息写到队列,然后有个进程从队列取出然后分配房间的,一开始不知道房间号,只有出牌的时候才能取到房间号,难不成每次出牌都要带上房间号,总感觉这样设计不合理

  • drdeahg 2018-04-25

    第一次取得标识的时候存在内存里面里面然后路由

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