Rails ActiveJob - 处理 ActionMailer::DeliveryJob 中的异常的好方法是什么

lar*_*hao 5 ruby-on-rails exception actionmailer sidekiq rails-activejob

我在 Rails 项目中使用ActiveJob+进行任务处理。Sidekiq

我直接使用 发送邮件MyMailer.some.deliver_later。它会自动创建一个ActionMailer::DeliveryJob任务并将其放入队列中Sidekiq

问题是,处理异常有什么好处呢?

此致。

lar*_*hao 1

根据http://edgeguides.rubyonrails.org/active_job_basics.htmlActionMailer::DeliveryJob ,我认为最好的方法是在初始化程序中设置异常错误处理程序,例如:

ActionMailer::DeliveryJob.rescue_from(Net::SMTPSyntaxError) do |exception|
  unless ['501 Command parsing failed'].include?(exception.message.strip)
    raise exception
  end
end
Run Code Online (Sandbox Code Playgroud)