Save performing errors to DB

This commit is contained in:
Dzmitry Plashchynski
2015-03-07 18:05:47 +02:00
parent 00e51604ae
commit f43ae4b1b1
3 changed files with 27 additions and 10 deletions

View File

@@ -75,7 +75,6 @@ module Crono
end
def start_working_loop
Thread.abort_on_exception = true
while job = Crono.scheduler.next do
sleep(job.next - Time.now)
job.perform

View File

@@ -34,10 +34,18 @@ module Crono
def perform
log "Perform #{performer}"
self.last_performed_at = Time.now
save
Thread.new do
performer.new.perform
log "Finished #{performer} in %.2f seconds" % (Time.now - last_performed_at)
begin
performer.new.perform
rescue Exception => e
log "Finished #{performer} in %.2f seconds with error: #{e.message}" % (Time.now - last_performed_at)
log e.backtrace.join("\n")
else
log "Finished #{performer} in %.2f seconds" % (Time.now - last_performed_at)
ensure
save
end
end
end