2013-10-31 36 views
1

我已經在Rails應用4以下的工人:錯誤的Sidekiq工人設置JID

class CallbackWorker 
    include Sidekiq::Worker 

    def perform(user_id) 
    user = User.find(user_id) 

    Rails.logger.info "[CallbackWorker] Initiating callback check for #{user.full_name}" 
    callback = user.callbacks.next.first 

    Rails.logger.info "[CallbackWorker] Next callback: #{callback.inspect}" 
    return unless callback 

    Rails.logger.info "[CallbackWorker] Calling user" 
    callback.execute 
    end 
end 

那個叫這樣的:

def available! 
    if unavailable? 
    events.create! state: "available" 
    hours.create! action: "start" 
    end 
    CallbackWorker.perform_async(self.id) 
end 

但我得到的Sidekiq以下錯誤過程:

2013-10-31T00:48:09Z 21627 TID-ouq3ot5mw WARN: {"retry"=>true, "queue"=>"default", "class"=>"CallbackWorker", "args"=>[1], "jid"=>"f5ff02372751c820aa7c8ed5", "enqueued_at"=>1383180489.304018} 
2013-10-31T00:48:09Z 21627 TID-ouq3ot5mw WARN: undefined method `jid=' for #<CallbackWorker:0x007f898d3a3748> 
2013-10-31T00:48:09Z 21627 TID-ouq3ot5mw WARN: /Users/fcoury/.rvm/gems/ruby-2.0.0-p247/gems/sidekiq-2.13.1/lib/sidekiq/processor.rb:44:in `block in process' 
/Users/fcoury/.rvm/gems/ruby-2.0.0-p247/gems/sidekiq-2.13.1/lib/sidekiq/processor.rb:83:in `do_defer' 
/Users/fcoury/.rvm/gems/ruby-2.0.0-p247/gems/sidekiq-2.13.1/lib/sidekiq/processor.rb:37:in `process' 
/Users/fcoury/.rvm/gems/ruby-2.0.0-p247/gems/celluloid-0.15.0/lib/celluloid/calls.rb:25:in `public_send' 
/Users/fcoury/.rvm/gems/ruby-2.0.0-p247/gems/celluloid-0.15.0/lib/celluloid/calls.rb:25:in `dispatch' 
/Users/fcoury/.rvm/gems/ruby-2.0.0-p247/gems/celluloid-0.15.0/lib/celluloid/calls.rb:122:in `dispatch' 

任何想法爲什麼它試圖設置我的工人的jid?

回答

1

我使用的是Sidekiq 2.13.0。升級到2.16.0解決了這個問題。