关于在Socket里的 timer

ehohpo

现在我发现是在Socket 里的Timer 会停止操作,想知道这个是什么原因导致?
有几种可能问题,并在workerman.log没有什么Error,所以需要大家帮忙一下,谢谢

2125 4 0
4个回答

walkor

如何判断停止工作的?
下次怀疑停止工作的时候运行下 php start.php status 截图下结果

  • ehohpo 2019-02-21

    我们问题不是 Socket 停止工作,但是 Timer消失,我们知道Timer消失是因为 Application Log 的Timer的数据都消失了

    想知道这个是什么原因导致 Timer 停止工作或者 Timer有效期吗?工作了一段时间会自己停止

  • walkor 2019-02-21

    我问的也是Timer。。。下次有问题的时候status下截图

  • ehohpo 2019-02-22

    @1: 如下是我们Status图

ehohpo

status下截图 ,请帮忙看看一下是这样status 有问题吗?

  • 暂无评论
walkor

看起来是有两个businessWorker进程的业务代码出现问题了。一共9个进程,status里只出现了7个,对比ps aux命令找到消失的businessWorker的pid,利用 strace 和 lsof命令应该能定位到。定位方法参考手册http://doc.workerman.net/debug/busy-process.html。

出现这个问题的原因一般是因为业务代码死循环,或者有访问外部数据库/redis等存储或者调用外部接口没处理好超时时间超时了,导致业务一直阻塞等待。

  • 暂无评论
ehohpo

再问一下一个问题 total_request里,可不可以把它减低呢? 现在感觉上继续增加很多的

  • xiuwang 2019-02-25

    重启就清零了

  • ehohpo 2019-02-25

    除了重启方式,还有其他方式吗? 不然会要一直重启的

  • ehohpo 2019-02-25

    @1 可以帮忙一下吗?

  • walkor 2019-02-25

    total_request就是一个统计值,增加对你有什么影响么?

  • ehohpo 2019-02-25

    我也不确定会不会影响 -*-,但是重启了Socket,会显示完成9个进程,过了一段时间会添加上来,然后会消失所以不确定是什么原因

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