Timer中定时查数据库导致BusinessWorker死掉

joson

用Timer做定时查询数据库后推送消息功能,但经常出现运行时间长了之后BusinessWorker进程莫名其妙死掉,status查看只剩下Gateway进程,请问这是什么原因导致的呢?

2887 1 0
1个回答

walkor

status看不到BusinessWorker进程不代表进程BusinessWorker已经死掉,这种情况是由于业务代码有bug,导致进程卡死,比如数据库没有设置超时时间一直阻塞等待数据返回,比如使用了sleep使进程睡眠,比如代码里面有死循环等情况。

这种情况请检查业务代码,并通过strace命令查看BusinessWorker进程阻塞在哪个系统调用,这样很容易查出来业务代码哪里卡住了。

strace使用方法手册中有
http://doc3.workerman.net/debug/strace.html

  • 暂无评论
年代过于久远,无法发表回答
🔝