为 ActionMailer deliver_later 设置默认队列?

Setting a default queue for ActionMailer deliver_later?

您可以指定在 ActionMailer 中调用 deliver_later 时使用哪个队列,方法是添加 :queue 作为可选参数,例如:

Notifier.welcome(User.first.id).deliver_later(queue: "low")

有没有办法以通用方式为所有 ActionMailer 执行此操作?要设置默认的 ActionMailer 队列?

之前 Rails 5

查看 Rails' source code 您可以看到他们已经将默认队列名称设置为“mailers”。

不过,如果您想更改该默认值,您始终可以通过在初始化程序或加载的 lib 文件中包含以下代码来覆盖它:

class ActionMailer::DeliveryJob
  queue_as :default_mailer_queue
end

因为 Rails 5

Rails 5 允许您通过简单配置来设置默认队列命名。

例如加你application.rb:

config.action_mailer.deliver_later_queue_name = 'default_mailer_queue'