【问题标题】:Rails 4.2 - Sidekiq not sending emails in developmentRails 4.2 - Sidekiq 在开发中不发送电子邮件
【发布时间】:2015-05-02 00:11:42
【问题描述】:

我有一个 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!

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

那么,我错过了什么吗?

【问题讨论】:

  • 您是否包含了 proc 文件?
  • @sansarp 不,我没有。安东尼在下面的回答足以让它发挥作用。但是我对 Procfile 很好奇,您能否详细说明我如何包含 ad Procfile,它应该包含什么以及为什么?

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


【解决方案1】:

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

bundle exec sidekiq -q default -q mailers

Sidekiq Wiki 回顾了detail here 中的场景。

【讨论】:

    【解决方案2】:

    你也可以修改 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 帮助了我 - 谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-13
    • 2016-09-04
    • 2017-07-16
    • 2013-03-31
    • 2014-07-18
    • 2011-10-25
    相关资源
    最近更新 更多