【问题标题】:Heroku not sending Delayed Job emails through controllerHeroku 不通过控制器发送延迟作业电子邮件
【发布时间】:2012-10-11 07:21:36
【问题描述】:

当有人填写表格时,我正在尝试使用 Heroku 上的 Rails 3.2 应用程序中的延迟作业发送电子邮件。我已经能够通过本地开发机器上的延迟作业成功发送电子邮件。如果我通过 Heroku 上的控制台手动运行它们,我还可以使用延迟作业发送电子邮件。但是,当有人提交触发电子邮件的表单时,它不会发送。

这是我的邮件:

class ClaimMailer < ActionMailer::Base
  default from: "noreply@coatchex.com"

  def patron(claim)
    mail(:to => claim.email, :subject => I18n.t('mailers.claims.patron.subject'))
  end

  def coatchex(claim)
    @claim = claim
    mail(:to => 'claims@coatchex.com', :subject => I18n.t('mailers.claims.coatchex.subject'))
  end
end

这是我的控制器:

class ClaimsController < ApplicationController
  layout 'basic'

  def new
    @claim = CoatChex::Forms::Claim.new
  end

  def create
    @claim = CoatChex::Forms::Claim.new(params[:claim])
    if @claim.valid?
      ClaimMailer.delay.coatchex(@claim)
      render :thank_you
    else
      render :new
    end
  end
end

就像我提到的,如果我通过 Heroku 控制台运行以下命令,它会将电子邮件排入延迟作业并发送出去:

@claim = ...
ClaimMailer.delay.coatchex(@claim)

但是,每当我通过表单发送它时,它都不会触发。

如果我足够快,我可以在 Heroku 控制台中运行 Delayed::Job.count,并在通过表单提交作业执行之前看到值 1。所以我知道延迟的工作正在得到它。如果我使用

查看工作人员日志
heroku logs -p worker -t

我可以看到手动执行作业过程时记录了它,但当它通过表单时却没有。

数据库中没有失败的作业。

以前有人遇到过这种情况吗?

【问题讨论】:

    标签: ruby-on-rails heroku ruby-on-rails-3.2 delayed-job


    【解决方案1】:

    我遇到了类似的问题。一个很好的起点是https://devcenter.heroku.com/articles/delayed-job#debugging 处的信息 - 具体来说,在 Heroku 控制台上运行 Delayed::Job.last.last_error

    在我的例子中,我得到的错误是Job failed to load: uninitialized constant Syck::Syck,通过将psych 添加到我的gemfile 来解决这个问题。见Delayed_job: Job failed to load: uninitialized constant Syck::Syckhttp://effectif.com/ruby-on-rails/syck-and-psych-yaml-parsers-on-heroku

    【讨论】:

      【解决方案2】:

      你需要用命令启动worker

      rake jobs:work

      在您的 heroku rails 控制台上。

      【讨论】:

        猜你喜欢
        • 2012-03-18
        • 2015-09-08
        • 1970-01-01
        • 2015-10-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多