Rails 4.2 - Sidekiq在开发环境中无法发送电子邮件

17

我有一个 Rails 应用程序,其中有一个方法,我在其中发送了许多电子邮件。我想要异步执行此操作。为此,我尝试使用 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!

我没有收到任何错误信息,但电子邮件从未发送。那么,我错过了什么吗?

你是否已经包含了一个proc文件? - sansarp
@sansarp 没有,Anthony在下面的回答已经足够让它工作了。但是我对Procfiles很好奇,你能详细说明一下我如何包含一个Procfile,它应该包含什么以及为什么吗? - Anders
2个回答

46

你需要使用mailer队列启动sidekiq,以便它可以接收这些作业:

bundle exec sidekiq -q default -q mailers

Sidekiq维基详细介绍了此处的情况。


7

同时,您可以修改config/sidekiq.yml文件:

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

运行 sidekiq -C config/sidekiq.yml


运行 sidekiq -C config/sidekiq.yml 帮了我一把 - 谢谢! - cdimitroulas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接