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

Rails 4.2 - Sidekiq not sending emails in development

我有一个 rails 应用程序,我可以在其中发送大量电子邮件。我想执行此操作 asynchronously。为此,我尝试使用 Sidekiq,但我无法使其正常工作 - 它不发送任何电子邮件。

发送电子邮件之前有效,所以我确定我的电子邮件设置正确。

在我的 gemfile 我有这个:

gem 'sidekiq'

我有 运行 bundle install。我还按照 RailsCasts #366.

上的说明安装了 redis

我已使用以下命令启动 sidekiqbundle exec sidekiq,结果如下图所示:

application.rb 我有以下内容:

config.active_job.queue_adapter = :sidekiq

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

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

我没有收到任何错误,但电子邮件从未发送过。

那么,我是不是漏掉了什么?

您需要使用邮件程序队列启动 sidekiq 才能接收这些作业:

bundle exec sidekiq -q default -q mailers

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

也可以修改config/sidekiq.yml:

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

和运行sidekiq -C config/sidekiq.yml