首页 > 解决方案 > 我如何为延迟邮件程序启用单独的 Sidekiq 队列

问题描述

我将sidekiq用于后台作业,对于不同类型的作业,我们使用不同的队列,例如,对于与支付相关的作业,我们使用关键支付队列,我们​​使用sidekiq延迟邮件扩展来发送邮件,它使用默认队列。

我想将所有邮件移动到一个单独的队列中。我试试配置

config.action_mailer.deliver_later_queue_name = 'mailer_test'

但在刷新并重新启动应用程序后仍然推送到默认队列。我如何将其移至单独的队列。

标签: sidekiqruby-on-rails-5.2

解决方案


该配置项适用于 Active Job 邮件。您正在使用 Sidekiq。把它放在你的初始化程序中:

class Sidekiq::Extensions::DelayedMailer
  sidekiq_options queue: 'mailer_test'
end

然后确保使用该队列启动 Sidekiq:

bundle exec sidekiq -q mailer_test -q default

推荐阅读