12-2这里不注册直接执行run方法后,会出现StackOverflowError
来源:12-2 调度优化之发送数据调度优化
浪里龙虾最大个
2019-11-23
您好老师,12-2这里优化以后:
会出现下图的问题:
导致消息直接通过channel写出去了,不会去注册。这个在发送稍微大一点的文件的时候,会一直循环执行processor.onConsumeCompleted(args);会出现下图的情况:
写回答
1回答
-
Qiujuer
2019-11-25
StackOverflowError
从你的调用链来看,的确是出现了递归循环,导致你的栈不够。

建议检查一下这几个方法内部实现,看看是不是出现了递归调用的情况。看你的日志来说是这几个方法一直处于循环状态,如果在一个线程中一直这样就会出现你的问题,你需要看看在requestSend操作中是否真的将Callback交给了线程去再次调度,还是自己就执行了。

从你的代码来看的确是这里再次执行了,并未交给线程去再次调度。而课程优化,我记得是尝试发送,如果发送后还有则进行二次调度。你可以往课程后面继续看看。
032019-11-25
相似问题

