为 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'
您可以指定在 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'