lib/say_when/scheduler.rb in say_when-0.4.0 vs lib/say_when/scheduler.rb in say_when-0.4.1

- old
+ new

@@ -75,10 +75,22 @@ end logger.info "SayWhen::Scheduler stopped" end + def process_waiting_jobs(max_jobs=1000) + jobs_processed = 0 + while(jobs_processed < max_jobs) + if job = process_jobs + jobs_processed += 1 + else + break + end + end + return jobs_processed + end + def process_jobs job = nil time_now = Time.now self.reset_next_at ||= Time.now @@ -97,11 +109,11 @@ end if job.nil? logger.debug "SayWhen:: no jobs to acquire, sleep" sleep(tick_length) - return + return job end begin logger.debug "SayWhen:: got a job: #{job.inspect}" # delegate processing the trigger to the processor @@ -113,15 +125,18 @@ logger.debug "SayWhen:: job fired complete" rescue StandardError => ex job_error("Failure to process", job, ex) end - rescue Interrupt => ex - job_error("Interrupt!", job, ex) - raise ex + return job + rescue StandardError => ex job_error("Error!", job, ex) sleep(tick_length) + return job + rescue Interrupt => ex + job_error("Interrupt!", job, ex) + raise ex rescue Exception => ex job_error("Exception!", job, ex) raise ex end