毎日実行される rufus-scheduler ジョブを含む JRuby/Rails アプリケーション。ただし、アプリケーションが Java ヒープ領域 (Tomcat) で実行されると、ジョブはサイレントに実行を停止します。
これは、スレッドセーフ モードでのみ発生するようです。
抽象化されたconfig/initializer/update_scheduler.rb
scheduler = Rufus::Scheduler.start_new
#Runs everyday at 7:30 AM - expected after all ETL/MV refreshes are executed
scheduler.cron("30 7 * * *", :tags => 'auto_update') do
begin
# do stuff
Rails.logger.info "log info and duration"
rescue Exception => s_e
Rails.logger.error "Scheduler Failed"
end
Rails.logger.flush
end
class << scheduler
def lwarn (&block)
Rails.logger.error("Scheduler Error: " + block.call)
end
end
MyApp::Application.config.scheduler = scheduler