【问题标题】:Delayed Job works in development but not in production延迟作业在开发中有效,但在生产中无效
【发布时间】:2012-11-12 01:42:40
【问题描述】:

我的应用程序使用Collective Idea fork of Delayed Job 异步发送电子邮件。问题是这在开发环境中可以正常工作,但在生产环境中却不行。这些工作没有失败(我检查了delayed_jobs 表),它们只是没有被消耗。生产日志中没有任何值得注意的内容。

这是delayed_jobs 表中handler 列的内容:

--- !ruby/struct:Delayed::PerformableMethod \
object: CLASS:FeedbackMailer\
method: :deliver_message\
args: \
- AR:Message:6\

——我看不出有什么问题。这是我的FeedbackMailer 班级:

class FeedbackMailer < ActionMailer::Base
  def message(message, sent_at = Time.now)
    subject = 'New Feedback Message'
    subject = "#{subject}: #{message.subject}" if message.subject.present?
    subject    subject
    recipients 'me@example.org'
    from       'feedback@example.org'
    sent_on    sent_at
    body       :message => message
  end
end 

最后,这是我Message类中的相关方法:

def send_email
  FeedbackMailer.send_later(:deliver_message, self)
end

我知道 ActionMailer 代码在生产中可以正常工作,因为我在切换到延迟作业之前对其进行了同步测试。正如我所说,我也通过在开发中成功使用延迟作业一直运行它。

如果我在服务器上运行top 命令,那么我可以看到延迟作业 Ruby 进程每五秒激活一次。我该如何调试?

【问题讨论】:

  • 使用以下命令启动延迟作业:RAILS_ENV=production script/delayed_job start

标签: ruby-on-rails delayed-job


【解决方案1】:

您是否在设置 -e production 标志的情况下运行 ./script/delayed_job?

【讨论】:

  • 你用RAILS_ENV=production script/delayed_job start运行我正在使用的fork
【解决方案2】:

约翰,

虽然我也使用了集体 Idea fork,但我发现 Tobi 的脚本也可以工作。我只需要一个 tmp/pid 目录(您可能有),然后您就可以获取日志文件,并可以将该文件与您的错误列在您的 Delayed::Job.first 记录中所说的内容进行交叉引用(或者当然是任何工作) . Script for running as a daemon from tobi fork

哦,如果您进行了更改,您确实重新启动了?不得不问。

【讨论】:

  • 我无法解释原因,但切换到原来的延迟作业解决了它!
【解决方案3】:

log/delayed_job.log 中是否出现任何内容?您提到了生产日志,但延迟作业有自己的日志。

  • [JOB] 在 PreviewImageJob 上获取锁定

您可以尝试创建一个单独的类,而不是使用 _later() 方法。

class PreviewImageJob < Struct.new(:item_id)
  def perform
    item = Item.find(item_id)
    item.generate_interior_images!
  end
end

【讨论】:

  • 我没有延迟作业的日志文件。它是一个配置选项吗?我尝试使用单独的类 - 它在开发中有效,但在生产中无效。
  • 生产日志目录可写? '触摸日志/delayed_job.log'?我的刚启动时出现,所以我记得。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-24
  • 2013-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-10
相关资源
最近更新 更多