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

access all events from clockwork manager to controller

正在使用 gem clockwork 进行 运行 计划作业。 我需要访问 clock.rb 中定义的所有事件,以便在它失败时手动触发发条事件。

为此,我通过在 clockwork/manager.rb 文件中添加 attr_reader: events 来分叉发条装置 gem。

clock.rb

module Clockwork
  every(10.seconds, 'job1') do
    p Clockwork.manager.events
  end
end

通过在 clock.rb 中使用 Clockwork.manager.events 它 returns 在 clock.rb 中定义的所有事件。

mycontroller.rb

module Admin
  class MyController < AdminController

    require 'clockwork'

    def index
      @events = Clockwork.manager.events
    end
  end
end

但是在控制器中使用它时它 returns 空值。

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

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

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

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