关于workerman定时器的疑问

leojen

1.定时器如果创建过多,会不会导致业务阻塞,比如发送消息延时之类的。
2.有没有方法可以查看当前已经创建的定时器有多少?

阅读 1565
1个回答

walkor

1、是否阻塞取决于定时器里执行的业务代码是否有阻塞
2、php start.php status 里能看到当前进程定时器数量

  • leojen 2019-01-16

    多谢,我看到了,我的workerman运行一段时间后就会出现发消息延时,卡顿等现象,利用php start.php status查看可以看到有少数busy进程,但是问题是,如果我这时候重启下workerman,同样能看到少数几个Busy进程,但是这时候发消息什么的就完全不卡了。。我之前怀疑是不是创建的定时器太多引起了业务阻塞,但是现在看来不是这个原因。我估计是不是workerman 有资源没释放掉导致的

  • walkor 2019-01-16

    busy是因为业务阻塞卡住了,是业务问题,并不是workerman没释放资源等导致。
    手册 http://doc.workerman.net/debug/busy-process.html 这里有定位教程

  • leojen 2019-01-16

    @1:感谢。但是如果是这样的话,为啥重启之后虽然也有Busy进程,但是完全不卡了呢。

  • walkor 2019-01-16

    如果越来越卡,有可能是无限创建定时器导致cpu负载上去了

  • leojen 2019-01-16

    @1:嗯 我再看看,多谢了

  • leojen 2019-01-16

    @1:还想请教下,那个status里 有个total_request 是当前总共的请求数量吗?