【问题标题】:Sidekiq Pro calling brpoplpush throwing ArgumentError "wrong number of arguments (given 3, expected 2)"Sidekiq Pro 调用 brpoplpush throwing ArgumentError \"error number of arguments (given 3, expected 2)\"
【发布时间】:2022-10-01 12:01:04
【问题描述】:

这个错误没有意义,因为brpoplpush in Ruby Redis 5.0.5期望三个参数,Sidekiq Pro 5.5.2 调用brpoplpushlib/sidekiq/pro/super_fetch.rb 第 355 行的三个参数:

      result = conn.brpoplpush(queue, working_queue, config[:fetch_timeout] || 1)

这是哨兵中的错误:

从我们的 Gemfile.lock 中:

sidekiq-pro (5.5.2)
  sidekiq (>= 6.5.0)

redis (5.0.5)
  redis-client (>= 0.9.0)
  • 看起来您在没有升级 Sidekiq Pro 的情况下将 Redis gem 升级到了新的主要版本。

标签: ruby redis sidekiq


【解决方案1】:

该方法的签名包括一个命名参数timeout,默认为 0。Ruby 将接受参数列表末尾的哈希,但不接受整数或类似的值。

我怀疑config[:fetch_timeout] 是零,因此1 的值被传递,因此错误消息。

也许看看config[:fetch_timeout] 的设置位置,并确保它包含像{ timeout: 1 } 这样的哈希值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-19
    • 2013-12-12
    相关资源
    最近更新 更多