slo*_*ype 1 ruby ruby-on-rails redis sidekiq
我使用 sidekiq 3.4.2 和 redis 3.0.3 来执行一些长时间运行的作业,大约两到四个小时后,我收到以下错误:
错误:心跳:EXECABORT 由于先前的错误,事务已被丢弃。
EXECABORT 由于先前的错误而放弃事务。/home/deployer/apps/wripl-capture/shared/bundle/ruby/2.2.0/gems/redis-3.2.1/lib/redis/pipeline.rb:79
finish' /home/deployer/apps/wripl-capture/shared/bundle/ruby/2.2.0/gems/redis-3.2.1/lib/redis/client.rb:149:in
:在 call_pipeline' /home/deployer/apps 中的块中/wripl-capture/shared/bundle/ruby/2.2.0/gems/redis-3.2.1/lib/redis/client.rb:279:inwith_reconnect' /home/deployer/apps/wripl-capture/shared/bundle/ruby/2.2.0/gems/redis-3.2.1/lib/redis/client.rb:147:in
call_pipeline'/home/deployer/apps/wripl-capture/shared/bundle /ruby/2.2.0/gems/redis-3.2.1/lib/redis.rb:2182block in multi' /home/deployer/apps/wripl-capture/shared/bundle/ruby/2.2.0/gems/redis-3.2.1/lib/redis.rb:37:in
:在同步块中'/usr/local/rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0 /monitor.rb:211:在`mon_synchronize'中
除非我重新启动 sidekiq,否则一切都会被终止(没有运行排队的作业),这不是我需要做的。
知道发生了什么吗?
由于空multi
命令也可能发生这种情况。
跑步redis-cli monitor
我看到
1546789398.881549 [0 the-ip] "multi"
1546789398.881575 [0 the-ip] "exec"
Run Code Online (Sandbox Code Playgroud)
在执行 multi 之前,请确保至少有 1 个命令要在事务上执行。
归档时间: |
|
查看次数: |
15800 次 |
最近记录: |