Rails 4.2 - Sidekiq不在开发中发送电子邮件

时间:2015-03-01 16:54:42

标签: ruby ruby-on-rails-4 actionmailer sidekiq rails-activejob

我有一个rails应用程序,其中我有一个方法,我发送了很多电子邮件。我想执行此操作asynchronously。为此,我尝试使用Sidekiq,但我无法正常使用它 - 它不会发送任何电子邮件。

之前发送电子邮件,因此我确定我的电子邮件设置已正确设置。

在我的gemfile我有这个:

gem 'sidekiq'

我已经bundle install了。我还安装了redis,按照RailsCasts #366上的说明进行操作。

我已使用以下命令启动sidekiqbundle exec sidekiq,这导致了下图中显示的内容:

enter image description here

application.rb我有以下内容:

config.active_job.queue_adapter = :sidekiq

我尝试发送这样的电子邮件:

Mailer.deliver_new_competition_notification(member.user,   @competition).deliver_later!

我没有收到任何错误,但电子邮件永远不会被发送。

那么,我错过了什么吗?

2 个答案:

答案 0 :(得分:37)

您需要使用邮件程序队列启动sidekiq以获取这些作业:

bundle exec sidekiq -q default -q mailers

Sidekiq Wiki介绍了detail here中的场景。

答案 1 :(得分:6)

您也可以修改config / sidekiq.yml:

---
:concurrency: 25
:pidfile: ./tmp/pids/sidekiq.pid
:logfile: ./log/sidekiq.log
:queues:
  - default
  - mailers

并运行sidekiq -C config/sidekiq.yml