使用gem clockwork运行预定作业。 我需要访问clock.rb中定义的所有事件,以便在失败时手动触发发条事件。
为此我通过在attr_reader: events
文件中添加clockwork/manager.rb
来分发发条宝石。
clock.rb
module Clockwork
every(10.seconds, 'job1') do
p Clockwork.manager.events
end
end
通过在clock.rb中使用Clockwork.manager.events
,它返回在clock.rb中定义的所有事件。
mycontroller.rb
module Admin
class MyController < AdminController
require 'clockwork'
def index
@events = Clockwork.manager.events
end
end
end
但是在控制器中使用它时会返回空值。
如何在控制器中获取所有发条事件?
答案 0 :(得分:1)
在development
模式下,启动时并未加载所有应用程序代码,可能尚未加载您定义事件的代码。
您可以require
控制器中的特定文件,之后它们应该可见。
在production
模式下,所有代码都在启动期间加载,因此在该模式下它应该已经可以工作。