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

本文主要是介绍测试环境频繁报:RedisCommandInterruptedException: Command interrupted,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

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

这篇文章有借鉴价值:

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

8月22 更新

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

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

果然,运维思路不一样:

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

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

一切就正常了。

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

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

这篇关于测试环境频繁报:RedisCommandInterruptedException: Command interrupted的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1100592

相关文章

jenkins 插件执行shell命令时,提示“Command not found”处理方法

首先提示找不到“Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具执行shell命令是可以执行。奇怪的就是通过jenkinsSSH插件无法执行,经一番折腾各种搜索发现是jenkins没有加载/etc/profile导致。 【解决办法】: 需要在jenkins调用shell脚

编译时出现错误 -- clang: error: linker command failed with exit code 1 (use -v to see invocation)

出现这个错误的原因有多种,常见的是因为某些文件的缺失或者是文件的重复导致的。 这类错误查看的关键在于其上一行的文字。 对于文件缺少而导致错误的情况: 例如上图中的示例,其上一行文字为 ld:library not found for -lrxl,可以看出是缺失了某一文件而导致的错误,这行文字中的最后“ -lrxl ”:-l 代表着其前缀是“lib”,连着后面的 rxl,其名称为 libr

Address localhost:1099 is already in use:tomcat频繁重启端口占用问题

错误提示 Unable to open debugger port (127.0.0.1:58198): java.net.SocketException "Socket closed" Address localhost:1099 is already in use 端口被占用 报错原因 由于短时间内频繁运行tomcat服务器。 为了避免出现这一错误。可以点击刷新uodate

ON_COMMAND_RANGE 和 ON_UPDATE_COMMAND_UI_RANGE

 ON_COMMAND_RANGE 和 ON_UPDATE_COMMAND_UI_RANGE 可以影射ID连续的Toolbar/Menu ID。 ON_COMMAND_RANGE影射的消息响应函数需要一个参数UINT表明是哪一个消息, afx_msg void OnZoom(UINT nID); 而ON_UPDATE_COMMAND_UI_RANGE的消息响应函数则无此ID,与ON

on command range

 ON_COMMAND_RANGEON_COMMAND_RANGE( id1, id2, memberFxn )参数: id1一个连续范围的命令ID的起始值。id2一个连续范围的命令ID的结束值。memberFxn该命令被映射到的消息处理函数的名字。 说明:使用这个宏把一个连续范围的命令ID映射到单个命令处理函数。ID的范围从id1开始,到id2结束。用ON_COMMAND_RAN

ON_COMMAND_RANGE的用法

 今天主要介绍一下ON_COMMAND_RANGE的用法 第一次用这个方法还是刚毕业那会,那时写过一个控制程序,界面上有很多电器的控制按钮,这些按钮的响应函数基本一致,只是相应的ID值不一样,要是一一写响应函数那不累死人,于是就东找西找,找到ON_COMMAND_RANGE。 最近一个偶然机会也要用到它,三下五除二,CODE写完了, 1.在要添加的工程上添加函数afx_msg vo

JVM避免频繁的GC

在编写代码时,完全避免垃圾收集(GC)是不可能的,因为Java(以及许多其他现代编程语言)的内存管理是基于自动垃圾收集的。然而,你可以通过一些最佳实践来减少GC的频率和开销,从而优化你的应用程序性能。以下是一些建议: 减少对象创建 尽可能重用对象,而不是每次需要时都创建新对象。 使用对象池来管理可重用对象的生命周期。 优化数据结构 选择合适的数据结构来存储数据,以减少内存占用和访问时间

seleniumIDE command 命令类型

command命令 三大类型:(action、Accessor、assertion) 操作 存储 断言 操作类型——Action 浏览器操作 open(https://www.sogou.com/) 打开url。 goBack() 无参数,后退。 refresh() 无参数,刷新。 windowFocus() 无参数,激活选中的浏览器窗口。 windowMaximize() 无参数,使浏览器窗口

【POJ】3164 Command Network 最小树形图——朱刘算法

传送门:【POJ】3164 Command Network 题目大意:平面上n个点,分别编号1~n。有m条有向边(u,v),边权为两点间的笛卡尔距离,表达为(u,v,cost)。现在问你能否选择一些边使得编号为1的点能到达其他所有点并且花费最小。 题目分析:最小树形图入门题。 什么是最小树形图?其实就是有向最小生成树。 那么算法是怎么实现的呢? 首先,我们从根做一次dfs,判

python执行command, 并获取command的执行结果

import subprocess   # 方法1:使用subprocess模块的run函数 def run_cmd_1(command):     """     运行CMD命令并返回输出结果          参数:     command (str): 要执行的CMD命令          返回:     output (str): 命令执行的输出结果     """     try: