Skip to content

Commit

Permalink
Merge d913e92 into c85a4fe
Browse files Browse the repository at this point in the history
  • Loading branch information
Nowaker committed Oct 7, 2014
2 parents c85a4fe + d913e92 commit d1fde2f
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -320,8 +320,8 @@ class ParanoidNewsletterJob < NewsletterJob
Airbrake.notify(exception)
end

def failure(job)
page_sysadmin_in_the_middle_of_the_night
def failure(job, exception)
page_sysadmin_in_the_middle_of_the_night(exception)
end
end
```
Expand Down
10 changes: 5 additions & 5 deletions lib/delayed/worker.rb
Original file line number Diff line number Diff line change
Expand Up @@ -211,22 +211,22 @@ def run(job)

# Reschedule the job in the future (when a job fails).
# Uses an exponential scale depending on the number of failed attempts.
def reschedule(job, time = nil)
def reschedule(job, time = nil, error = nil)
if (job.attempts += 1) < max_attempts(job)
time ||= job.reschedule_at
job.run_at = time
job.unlock
job.save!
else
job_say job, "REMOVED permanently because of #{job.attempts} consecutive failures", 'error'
failed(job)
failed(job, error)
end
end

def failed(job)
def failed(job, error = nil)
self.class.lifecycle.run_callbacks(:failure, self, job) do
begin
job.hook(:failure)
job.hook(:failure, error)
rescue => error
say "Error when running failure callback: #{error}", 'error'
say error.backtrace.join("\n"), 'error'
Expand Down Expand Up @@ -265,7 +265,7 @@ def max_run_time(job)
def handle_failed_job(job, error)
job.last_error = "#{error.message}\n#{error.backtrace.join("\n")}"
job_say job, "FAILED (#{job.attempts} prior attempts) with #{error.class.name}: #{error.message}", 'error'
reschedule(job)
reschedule(job, nil, error)
end

# Run the next job we can get an exclusive lock on.
Expand Down

0 comments on commit d1fde2f

Please sign in to comment.