ARouter icon indicating copy to clipboard operation
ARouter copied to clipboard

拦截器点击第10次无效

Open listen2code opened this issue 4 years ago • 4 comments

https://www.aipiti.cn/read/4e26dbd2-97d8-11e9-b583-525400bcb43b 文章中的问题我也遇到了,Postcard.timeOut改成小点,就可以修复了,这里的原理是啥, 修改timeOut是否会有问题?是否有更好解决方案?

listen2code avatar Jan 17 '21 05:01 listen2code

文章中提到的将timeout改成小点并没有根本性的解决问题,会导致LogisticsCenter.executor线程池的等待队列会长时间处于满的状态,导致无法接收新的任务,出现不可预测的问题。

yongjun310 avatar Jan 21 '21 11:01 yongjun310

核心问题是拦截器的 API 设计的有问题,需要显式调用 onContinue 或者 onInterrupt,否则线程会一直占着

zhi1ong avatar Jan 29 '21 16:01 zhi1ong

请问大佬们,我在拦截器的process中使用 postcard.setTimeout(2);然而并没有用,点击10次后还是会无效。不知道是不是我的使用方法有问题呢,求解。

QianHong avatar Apr 15 '21 01:04 QianHong

点击9次或者5次后拦截器无效对应的是LogisticsCenter.executor核心线程数 拦截器中部分InterceptorCallback未调用 onContinue 或 onInterrupt导致LogisticsCenter.executor无法处理新任务 解决1: setTimeout让LogisticsCenter.executor可以执行新的任务(超时会导致:NavCallback->onInterrupt) 解决2:处理拦截器中未调用 onContinue 或 onInterrupt的InterceptorCallback,不想手动处理页面可以设置setTimeout(1)

dushicai avatar Apr 20 '21 15:04 dushicai