【问题标题】:How to use sidekiq with devise to send emails without devise-async如何在没有 devise-async 的情况下使用 sidekiq 和 devise 发送电子邮件
【发布时间】:2016-11-18 15:02:36
【问题描述】:

我目前正在开发一个 rails 4 应用程序。我使用设计进行身份验证。我想使用 Sidekiq 发送电子邮件。我找到了这个 tuto https://github.com/mperham/sidekiq/wiki/Devise 但我不知道应该把队列的名称放在哪里。谁能帮我一个要点。谢谢

【问题讨论】:

  • 那个页面已经展示了如何配置队列名,仔细看github.com/mperham/sidekiq/wiki/Devise#use-devise-async
  • 谢谢 Mike,我不想添加 devise-async。我按照“自己动手”部分进行操作,然后开始运行。由于我配置了许多队列,我不知道使用的是哪一个。

标签: ruby-on-rails-4 devise sidekiq


【解决方案1】:

根据该 wiki 页面上显示的代码 sn-p,您可以执行以下操作:

Devise::Mailer.delay(queue: 'my_queue').send(...)

【讨论】:

    【解决方案2】:

    将 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

    【讨论】:

      猜你喜欢
      • 2014-07-18
      • 1970-01-01
      • 1970-01-01
      • 2012-04-21
      • 2015-01-19
      • 2016-09-26
      • 1970-01-01
      • 1970-01-01
      • 2012-11-07
      相关资源
      最近更新 更多