Railsでgem「Whenever」を使って、cron設定するもrakeファイルがうまく実行できません。
scheduler.rbで"aggregate_log:main"を指定して実行するようにしていますが、
log.rakeの"Task:main"しか動きません。
以下のコードでうまくいってないと思っています。
namespaceの"aggregate_log"を追加していみましたが、うまく動きませんでした。
:before ⇒ :main ⇒ :after でうまく動くようにするにはどう記述すればよいでしょうか?
ご教授の程よろしくお願いします。
$ bundle exec rake aggregate_log:main
でrakeファイルを動かしたらうまく順番に動きます。。
Rake::Task[:main].enhance([:before]) do Rake::Task['aggregate_log:after'].invoke end
schedulerb
1# jobの実行環境 2set :environment, :production 3 4# 毎日 時間指定 5every 1.day, at: '19:12 pm' do 6 rake 'aggregate_log:main' 7end
rakefile
1namespace :aggregate_log do 2 3 desc "[前処理]" 4 task :before => :environment do 5 @l.info '開始' 6 end 7 8 desc "集計" 9 task :main => :environment do 10 @l.info "引数 集計対象日時:#{@started_at}" 11 .............................. 12 end # task:main end 13 14 desc "[後処理]" 15 task :after => :environment do 16 @l.info "終了" 17 end 18 19 Rake::Task[:main].enhance([:before]) do 20 Rake::Task['aggregate_log:after'].invoke 21 end 22end
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。