0

我正在使用gem Clockwork来运行预定的作业。我需要访问 clock.rb 中定义的所有事件,以便在时钟事件发生故障时手动触发它。

为此,我通过添加文件attr_reader: events来分叉发条宝石。clockwork/manager.rb

时钟.rb

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

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

我的控制器.rb

module Admin
  class MyController < AdminController

    require 'clockwork'

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

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

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

4

1 回答 1

1

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

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

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

于 2018-01-02T11:23:39.330 回答