簡體   English   中英

使用Rails,Sidekiq和發條的NameError

[英]NameError using Rails, Sidekiq & Clockwork

望着“例子clock.rb文件” 這里的文檔中,你可以看到,我的代碼如下發條公約(?)完全相同。 但是,我收到了似乎無法修復的錯誤。 我嘗試過對不同的變量進行復數和單數化處理。

`<module:Clockwork>': uninitialized constant Clockwork::Event::Manager (NameError)
    from /Users/MightyMouse/Desktop/DevBootcamp/phase-3/medmento/config/clock.rb:7:in `<top (required)>'
    from /Users/MightyMouse/.rvm/gems/ruby-2.0.0-p598/gems/clockwork-1.1.0/bin/clockwork:12:in `require'
    from /Users/MightyMouse/.rvm/gems/ruby-2.0.0-p598/gems/clockwork-1.1.0/bin/clockwork:12:in `<top (required)>'
    from /Users/MightyMouse/.rvm/gems/ruby-2.0.0-p598/bin/clockwork:23:in `load'
    from /Users/MightyMouse/.rvm/gems/ruby-2.0.0-p598/bin/clockwork:23:in `<main>'
    from /Users/MightyMouse/.rvm/gems/ruby-2.0.0-p598/bin/ruby_executable_hooks:15:in `eval'
    from /Users/MightyMouse/.rvm/gems/ruby-2.0.0-p598/bin/ruby_executable_hooks:15:in `<main>'

這是我的clock.rb文件:

require_relative "../config/boot"
require_relative "../config/environment"

require 'clockwork'
require 'clockwork/database_events'

module Clockwork



  Clockwork.manager = Event::Manager.new
  sync_database_events model: ClockworkEvent, every: 1.minute do |model_instance|

    TwilioWorker.perform_async
  end


end

從本質上講,我希望發條會(1)通過每個回路model_instance 如上面看到的 ,(2)找到frequency_quantityfrequency_period通過數據庫協會(一起,他們組成了“時間”),以及(3)調用TwilioWorker在正確的“時間”。

我嘗試用下面的代碼替換該塊。 運行clock.rb ,我可以從Twilio接到電話:

every(1.minutes, "twilio_call.job") { TwilioWorker.perform_async }

看一下Clockwork gem模塊的結構。 如果您嘗試引用此文件: https : //github.com/tomykaira/clockwork/blob/master/lib/clockwork/manager.rb,則需要使用

Clockwork.manager = Manager.new

(可能已經是默認值)

代替

Clockwork.manager = Event::Manager.new

因為Manager類直接位於Clockwork模塊內部(您可能從

Clockwork.manager = DatabaseEvents::Manager.new

這是不同的情況,因為Manager在Clockwork模塊內的DatabaseEvents模塊內引用了不同的類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM