查看文档中的“示例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本质上,我希望Clockwork将(1)循环遍历每个model_instance,(2)通过数据库关联找到frequency_quantity和frequency_period (它们一起组成“时间”),(3)在正确的“时间”调用TwilioWorker。
我试着用下面的代码替换这个块。当我运行clock.rb时,我可以接到Twilio的电话:
every(1.minutes, "twilio_call.job") { TwilioWorker.perform_async }发布于 2014-12-02 18:50:55
看看Clockwork模块的结构。如果您试图引用此文件: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模块中的不同类。
https://stackoverflow.com/questions/27256228
复制相似问题