2016-03-01 112 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

相關問題