deliver_later没有重试

时间:2015-09-02 21:40:04

标签: ruby-on-rails actionmailer rails-activejob

如何使用activeMailer和deliver_later禁用重试?

我最近遇到了一个问题,其中一个邮件程序由于视图中的语法错误而无声地失败。我们使用deliver_later发送消息

当它最终被发现并修复时,所有失败的旧消息都被重新尝试然后传递。这些是时间敏感的消息,不应该重试。

我似乎无法找到办法.deliver_later(retry: false)使用deliver_now来解决此问题?

我使用delayed_job作为我的消息队列。

1 个答案:

答案 0 :(得分:2)

ActiveJob不会触及适配器的重试设置(https://github.com/rails/rails/blob/master/activejob/lib/active_job/queue_adapters/delayed_job_adapter.rb)。如果你完全禁用DJ(Delayed::Worker.max_attempts = 4

中的重试机制,唯一的方法就是这样