Sha256: 2adade7e59ffe9ea5555becf915994ee43a28726d80d372d096b8b0c8748f56a
Contents?: true
Size: 1.65 KB
Versions: 1
Compression:
Stored size: 1.65 KB
Contents
module DaemonKit # Thin wrapper around rufus-scheduler gem, specifically designed to ease # configuration of a scheduler and provide some added simplicity. # # For more information on rufus-scheduler, please visit the RDoc's # at http://rufus.rubyforge.org/rufus-scheduler/ # # To use the evented scheduler, call #DaemonKit::EM.run prior to # setting up your first schedule. class Cron @instance = nil @exception_handler = nil attr_reader :scheduler attr_accessor :exception_handler class << self # Access to the scheduler instance def instance @instance ||= new end def scheduler instance.scheduler end def handle_exception( &block ) instance.exception_handler = block end private :new # Once the scheduler has been configured, call #run to block the # current thread and keep the process alive for the scheduled # tasks to run def run DaemonKit.logger.info "Starting rufus-scheduler" if instance.is_a?( Rufus::Scheduler::PlainScheduler ) instance.scheduler.join else Thread.stop end end end def initialize @scheduler = Rufus::Scheduler.start_new def @scheduler.handle_exception( job, exception ) DaemonKit::Cron.instance.handle_exception( job, exception ) end end def handle_exception( job, exception ) DaemonKit.logger.error( "Cron: job #{job.job_id} caught exception: '#{exception}'" ) DaemonKit.logger.exception( exception ) @exception_handler.call( job, exception ) unless @exception_handler.nil? end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
daemon-kit-0.1.8rc3 | lib/daemon_kit/cron.rb |