JRuby / Rails rufus-scheduler在线程安全模式下的堆空间后停止工作

时间:2012-09-27 13:39:24

标签: ruby-on-rails jruby rufus-scheduler

具有每天运行的rufus-scheduler作业的JRuby / Rails应用程序。但是,当应用程序运行到Java堆空间(Tomcat)时,作业将以静默方式停止运行。

这显然仅在Threadsafe模式下发生。

摘要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

0 个答案:

没有答案