Rails:NameError:未初始化的常量Sidekiq :: RetrySet

时间:2016-03-01 15:03:40

标签: ruby-on-rails sidekiq

我在我的一个项目中使用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

1 个答案:

答案 0 :(得分: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"