起因
起源:在使用Redisson实现分布式定时调度的过程中,遇到一个非常奇怪的问题:经过一些操作后,调度器会报一个莫名其妙的错误,status is shutdown,经过多次观察发现是在rancher平台重新发布Spring Boot项目后就会报这个错误,怀疑和Spring Boot优雅关闭有关系,所以进行一个追溯确认的过程。
报错信息:
Reids数据:
然后翻阅 RScheduledExecutorService 的方法,发现shutdown方法代码执行的 lua 脚本和目前看到的结果很相似,但是,身为程序员的我们是看证据的,没有证据都是耍流氓。
经过
方案1
尝试使用AOP拦截目标对象的方法,然后触发优雅关闭,看看是否能被拦截到,如果拦截到的话,它的调用栈信息也就随之出来了。