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

我有一个rails应用程序,我有一个方法,我发送了很多电子邮件。 我想asynchronously执行此操作。 要做到这一点,我试图使用Sidekiq ,但我不能让它正常工作 – 它不发送任何电子邮件。

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

在我的gemfile我有这个:

 gem 'sidekiq' 

我已经运行了bundle install 。 我还安装了redis ,遵循RailsCasts#366上的说明。

我已经使用以下命令启动了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 详细介绍了这些场景。

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

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

并运行sidekiq -C config/sidekiq.yml