常常有这种业务场景,在bolt初始化中调用Thread线程的sleep方法,模拟类似定期调度的效果,比如用于数据累加计算、缓存清理等工作。
在解决项目中遇到的问题时,发现在bolt初始化中新启动一个线程后,然后调用Thread类的sleep时会有挂死的情况,线程在运行一段时间休眠后,无法唤醒。
后来改用bolt自带的Tick机制,解决了此问题, 在storm的官方文档中,并不推荐在bolt中使用Thread这个类,文档阐述说是会遇到预期不到的问题,建议以后不要 在storm中再启动单独的线程,出现问题不易排查和定位。
最后欢迎大家访问我的个人网站:1024s