测试环境频繁报:RedisCommandInterruptedException: Command interrupted

比较奇葩的是:本机,开发,生产都没问题,就测试环境有这问题,导致docker容器不停重启,就是起不来。

本机中断程序,同样也会报这个问题

排查了半天,找到原因,应该是redis在频繁取到空值的情况下,就会出现线程被中断的情况,解决办法是在取到空值的情况下让线程睡100ms(Thread.sleep(100L))。

这篇文章有借鉴价值:

https://blog.csdn.net/guntun8987/article/details/128958899

8月22 更新

昨天中午,服务正常了一次,后面重构又不行了,这次还报其他错误

没法办了,只能请教运维一起排查,感觉不单单是代码可以修复的。

果然,运维思路不一样:

“启动不起来是你初始化的时候太多redis操作了,一直被当作未就绪”。

他在kubernates里面把启动探针(livenessprobe)给去掉了

一切就正常了。

当然,有些服务是需要启动探针的,那么可以尝试把initialDelaySeconds(指定容器启动后等待多少秒后开始执行探测)设置大一点。

代码解决不了的问题,一定别憋着,该找运维就找。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值