Rails: NameError: uninitialized constant Sidekiq::RetrySet

Rails: NameError: uninitialized constant Sidekiq::RetrySet

我在我的一个项目中使用 Sidekiq。现在我需要清理队列, RetrySet,更具体地说。

根据 Sidekiq 的 Github 手册 this page,这应该有效:

Loading development environment (Rails 4.2.1)
>> Sidekiq::RetrySet.new.clear
NameError: uninitialized constant Sidekiq::RetrySet

但事实并非如此。 Sidekiq 本身似乎已加载:

>> Sidekiq
=> Sidekiq

我做错了什么?

编辑:

使用 Sidekiq 版本 3.3.4

看来您需要明确要求 api 库。

require 'sidekiq/api'

查看此内容了解更多信息https://github.com/mperham/sidekiq/issues/1732

参见 https://github.com/mperham/sidekiq/blob/master/lib/sidekiq/api.rb#L612

继承说明

class SortedSet
 ...

 def clear
 ...
 end
end

class JobSet < SortedSet
  ...
end

class RetrySet < JobSet
  ...
end

但是,在我的 rails 控制台中,它不需要我要求库就可以工作。这已经是必需的。见

> require 'sidekiq/api'
=> false

我用 Sidekiq 4.0.1

> Sidekiq::VERSION
=> "4.0.1"