当前位置: 首页 > 知识库问答 >
问题:

由于以前的错误,Redis EXECABORT事务被丢弃。(Redis::CommandError)Sidekiq错误

封俊艾
2023-03-14

我正在使用sidekiq 3.4.2和redis 3.0.3处理一些长时间运行的作业,大约两到四个小时后,我得到以下错误:

错误:心跳:由于以前的错误,已放弃ExecutAbort事务。

EXECABORT事务由于以前的错误而被丢弃。 /home/deployer/apps/wripl-capture/shared/bundle/ruby/2.2.0/gems/redis-3.2.1/lib/redis/pipeline.rb:79:在完成' /home/deployer/apps/wripl-capture/shared/bundle/ruby/2.2.0/gems/redis-3.2.1/lib/redis/client.rb:149:在块中call_pipeline' /home/deployer/apps/wripl-capture/shared/bundle/ruby/2.2.0/gems/redis-3.2.1/lib/redis/client.rb:279:在with_reconnect' /home/deployer/apps/wripl-capture/shared/bundle/ruby/2.2.0/gems/redis-3.2.1/lib/redis/client.rb:147:在call_pipeline' /home/deployer/apps/wripl-capture/shared/bundle/ruby/2.2.0/gems/redis-3.2.1/lib/redis.rb:2182:在块中多' /home/deployer/apps/wripl-capture/shared/bundle/ruby/2.2.0/gems/redis-3.2.1/lib/redis.rb:37:在块中同步 /usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/monitor.rb:211:在mon_synchronize

一切都被杀死(没有排队作业运行),除非我重新启动sidkiq,这不是我需要做的。

知道发生了什么吗?

共有3个答案

薄涵衍
2023-03-14

multi块正在抑制实际的错误消息。在没有multi块的情况下运行您的代码以查看原始错误消息。

我试图在try/rescue块中的mutli块中运行整个代码,但仍然没有捕获到异常。

傅玮
2023-03-14

我猜你的Redis实例内存不足。

郑松
2023-03-14

这也可能是由于空的multi命令引起的。

正在运行redis-cli监视器我看到了

1546789398.881549 [0 the-ip] "multi"
1546789398.881575 [0 the-ip] "exec"

在执行multi之前,请确保至少有一个命令要在事务上执行。

 类似资料:
  • 错误:getMore命令失败:{“operationtime”:Timestamp(1547144095,335),“ok”:0,“errmsg”:“未能在$convert中解析objectId”,没有onError值:>解析到OID的字符串长度无效,预期为24,但找到0“,”code“:241,”codename“:”conversionfailure“,”$clustertime“:{”clu

  • 我正在编写一个程序,帮助我的客户从网站下载发票PDF,第一次使用。之后,程序Hibernate一定时间,醒来时开始搜索我的客户的电子邮件(使用S22 DLL),如果他找到某个电子邮件,则从电子邮件中提取链接并使用(第二次)。但这次我得到了一个例外 浏览上下文已被丢弃 我已经尽了一切可能,但最“震惊”的是,我在谷歌上找不到任何关于这个错误的东西,也没有在硒留档上找到任何东西。 我不明白这是什么意思

  • 当我尝试在不使用事务的情况下更新Neo4JClient中的现有节点时,它对id和Name属性具有唯一约束,我收到以下异常: 节点6已经存在的标签用户和属性"Name"=[Mike] 但当我尝试更新事务中的节点时,会收到以下异常: 执行请求时收到意外的HTTP状态。 响应状态为:404未找到 Neo4j的响应(可能包括有用的细节!)was:{“结果”:[],“错误”:[{“代码”:“Neo.Clie

  • 如何在Docker中运行基于硒的测试? 我正在尝试使用Firefox和Geckodriver在Ubuntu 18 Docker镜像下运行一些Python Selenium测试。 我的docker撰写。yml文件只是: 不幸的是,大多数测试都会失败,出现以下错误: 我能找到的少数提及此错误的搜索结果表明这是因为内存不足。我正在运行测试的服务器总内存为8GB,尽管我也在32GB的机器上进行了测试并收到

  • 问题内容: 我已经按照以下说明安装了Redis:http : //redis.io/download 当我运行redis-server redis.conf时,出现以下错误: 谢谢 问题答案: 是不是这个问题你的问题?

  • 我设计了两个输入命令,它们将在几分钟内“发送一封信”...如果用户在该时间段内发送另一个命令,则可以取消该命令。 我正在通过REST API控制器触发命令... 我希望看到的是日志语句,如果我计划一封信,并在接下来的五分钟内立即取消它,这些语句表示一封信被计划和取消。 这是我的集合体- 这是我的活动->