12回复
2年前
求助,Springboot @Async异步线程假死,程序不执行。
项目(springboot整合redis)是一个不断从redis读取数据打到kafka的程序:
1、配置了@Async线程池配置线程名为:Redis-Executor
2、项目在启动的时候,就执行了分别带有@Async注解的4个方法,这4个方法都是while(true)的分别从不同的redis key中读取数据,没有数据就sleep1秒,有数据就处理一下打到kafka。
3、昨天在本地压测发现这个程序处理很慢,redis还有很多数据没有处理掉,然后停止压测,让他先消费掉;今天再次处理的时候发现被@Async注解的这4个方法都不执行了,日志也没有打印。
4、jstack dump一份文件
求大佬们帮忙看下
4532 阅读
你说的不执行是不处理redis数据了么?可以看下redis是否还有需要处理的数据,看起来是都在while(true) sleep 执行,可以加个日志打印确定一下