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