2016-03-01 81 views
0

我在其中一个项目中使用了Sidekiq。现在我需要清除一个队列, RetrySet,更具体一些。Rails:NameError:未初始化的常量Sidekiq :: RetrySet

this page从Sidekiq的Github的手册,这应该工作:

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

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

>> Sidekiq 
=> Sidekiq 

我在做什么错在这里?

编辑:

使用Sidekiq版本3.3.4

+0

嘿翻转,您可以请添加您正在使用的版本sidekiq? – illusionist

+0

您是否尝试过重新启动导轨服务器,因为您添加了sidekiq gem? – SickLickWill

+0

在OP中添加了版本。重新启动服务器没有帮助。 – Flip

回答

3

看起来你需要导入该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 

然而,在我的轨道安慰它的工作,而不需要我需要图书馆。它已经是必需的。看到

> require 'sidekiq/api' 
=> false 

我用Sidekiq 4.0.1

> Sidekiq::VERSION 
=> "4.0.1" 
+0

工作,谢谢魔术师。 – Flip

相关问题