我目前正在开发rails 4应用程序。我使用devise进行身份验证。我想使用Sidekiq发送电子邮件。我找到了这个tuto https://github.com/mperham/sidekiq/wiki/Devise,但我无法弄清楚我应该把队列的名字放在哪里。任何人都可以用一个要点帮助我。谢谢
答案 0 :(得分:1)
根据该Wiki页面上显示的代码段,您可以执行以下操作:
Devise::Mailer.delay(queue: 'my_queue').send(...)
答案 1 :(得分:0)
一旦将Sidekiq添加到Rails应用程序中(请参阅link to getting started),为了将devise与Sidekiq一起使用(不带devise-async),可以使用ActiveJob中内置的rails。将此替代功能放在设计实现的模型中:
def send_devise_notification(notification, *args)
devise_mailer.send(notification, self, *args).deliver_later
end
使用ActiveJob配置Sideiq
# config/application.rb
class Application < Rails::Application
# ...
config.active_job.queue_adapter = :sidekiq
end
并为Sidekiq设置邮件队列
# config/sidekiq.yml
---
:concurrency: 1
:queues:
- default
- mailers
还应该安装redis来保存sidekiq的作业数据,所有操作都将更详细地here