访问从发条管理器到控制器的所有事件

时间:2017-12-30 08:03:19

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 clockwork

使用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

但是在控制器中使用它时会返回空值。

如何在控制器中获取所有发条事件?

1 个答案:

答案 0 :(得分:1)

development模式下,启动时并未加载所有应用程序代码,可能尚未加载您定义事件的代码。

您可以require控制器中的特定文件,之后它们应该可见。

production模式下,所有代码都在启动期间加载,因此在该模式下它应该已经可以工作。