记录排查线程退出导致的redis队列数据未消费总结
场景:开了一个线程从redis队列不断的获取任务。后来发现,redis任务没有被消费
排查思路:
- 线程是否卡死?
- 线程是否已销毁?
通过几天前的日志找出线程名称,然后使用jcmd pid Thread.print 命令打印出线程信息,发现该线程名并不存在,说明该线程已被销毁。
最后定位到 redis连不上,将任务放入redis重试队列时未catch,导致线程异常终止
场景:开了一个线程从redis队列不断的获取任务。后来发现,redis任务没有被消费
排查思路:
通过几天前的日志找出线程名称,然后使用jcmd pid Thread.print 命令打印出线程信息,发现该线程名并不存在,说明该线程已被销毁。
最后定位到 redis连不上,将任务放入redis重试队列时未catch,导致线程异常终止