diff --git a/app/jobs/application_job.rb b/app/jobs/application_job.rb index d394c3d106..485e65c8bf 100644 --- a/app/jobs/application_job.rb +++ b/app/jobs/application_job.rb @@ -1,7 +1,7 @@ class ApplicationJob < ActiveJob::Base - # Automatically retry jobs that encountered a deadlock - # retry_on ActiveRecord::Deadlocked - - # Most jobs are safe to ignore if the underlying records are no longer available - # discard_on ActiveJob::DeserializationError + def perform_now(*) + super + rescue ActiveJob::DeserializationError => e + raise unless e.cause.is_a?(ActiveRecord::RecordNotFound) + end end diff --git a/app/jobs/mail_delivery_job.rb b/app/jobs/mail_delivery_job.rb new file mode 100644 index 0000000000..d2ee4a650a --- /dev/null +++ b/app/jobs/mail_delivery_job.rb @@ -0,0 +1,7 @@ +class MailDeliveryJob < ActionMailer::MailDeliveryJob + def perform_now(*) + super + rescue ActiveJob::DeserializationError => e + raise unless e.cause.is_a?(ActiveRecord::RecordNotFound) + end +end diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb index 738c6e3d46..eb83f33da5 100644 --- a/app/mailers/application_mailer.rb +++ b/app/mailers/application_mailer.rb @@ -1,3 +1,3 @@ class ApplicationMailer < ActionMailer::Base - self.delivery_job = ActionMailer::MailDeliveryJob + self.delivery_job = MailDeliveryJob end