0

gem clockworkを使用してスケジュールされたジョブを実行しています。 clockworkイベントが失敗したときに手動でトリガーするために、clock.rbで定義されたすべてのイベントにアクセスする必要があります。時計作業マネージャからコントローラにすべてのイベントにアクセスします

私はattr_reader: eventsclockwork/manager.rbファイルに追加して時計の宝石をフォークしました。 clock.rbでClockwork.manager.eventsを使用することにより

clock.rb

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

それはclock.rbで定義されたすべてのイベントを返します。

mycontroller.rb

module Admin 
    class MyController < AdminController 

    require 'clockwork' 

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

しかし、それは空の値を返し、コントローラにそれを使用しています。

コントローラーのすべての時計イベントを取得するにはどうすればよいですか?

答えて

1

developmentモードでは、起動時にすべてのアプリケーションコードが読み込まれるわけではないため、イベントを定義したコードがまだ読み込まれていない可能性があります。

コントローラ内の特定のファイルをrequireにすることができます。後で見ることができます。

productionモードでは、すべてのコードが起動時にロードされるので、そのモードではすでに動作しているはずです。

関連する問題