如何在没有设计异步的情况下使用 sidekiq 和设计发送电子邮件
How to use sidekiq with devise to send emails without devise-async
我目前正在开发 rails 4 应用程序。我使用设计进行身份验证。我想使用 Sidekiq 发送电子邮件。我找到了这个 tuto https://github.com/mperham/sidekiq/wiki/Devise 但我不知道应该把队列名称放在哪里。谁能帮我一个要点。谢谢
根据该 wiki 页面上显示的代码片段,您可以这样做:
Devise::Mailer.delay(queue: 'my_queue').send(...)
将 Sidekiq 添加到 rails 应用程序后(请参阅 link to getting started)为了将设计与 Sidekiq(没有 devise-async)一起使用,您可以使用 rails 构建在 ActiveJob 中。将此覆盖函数放在设计实现的模型中:
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
我目前正在开发 rails 4 应用程序。我使用设计进行身份验证。我想使用 Sidekiq 发送电子邮件。我找到了这个 tuto https://github.com/mperham/sidekiq/wiki/Devise 但我不知道应该把队列名称放在哪里。谁能帮我一个要点。谢谢
根据该 wiki 页面上显示的代码片段,您可以这样做:
Devise::Mailer.delay(queue: 'my_queue').send(...)
将 Sidekiq 添加到 rails 应用程序后(请参阅 link to getting started)为了将设计与 Sidekiq(没有 devise-async)一起使用,您可以使用 rails 构建在 ActiveJob 中。将此覆盖函数放在设计实现的模型中:
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