繁体   English   中英

delayed_job和paperclip - 图片未处理,但没有错误?

[英]delayed_job and paperclip - Images aren't processed, but no error?

我试图让delayed_job使用Amazon S3和Paperclip时遇到大问题。 关于如何做到这一点有一些帖子,但无论出于何种原因,它根本不适合我。 我已经删除了一些其他人正在做的事情 - 最初我在regenerate_styles中有一个保存(validations => false),但这似乎导致无限循环(由于后保存捕获),并且没有似乎是必要的(因为URL已被保存,只有未上传的图像)。 这是我的模型文件submission.rb中的相关代码:

class Submission < ActiveRecord::Base
  has_attached_file :photo ...

  ...

  before_photo_post_process do |submission|
    if photo_changed?
      false
    end
  end

  after_save do |submission|
    if submission.photo_changed?
      Delayed::Job.enqueue ImageJob.new(submission.id)
    end
  end

  def regenerate_styles!
    puts "Processing photo"
    self.photo.reprocess!
  end

  def photo_changed?
    self.photo_file_size_changed? ||
    self.photo_file_name_changed? ||
    self.photo_content_type_changed? ||
    self.photo_updated_at_changed?
  end
end

而我的小ImageJob类位于submission.rb文件的底部:

class ImageJob < Struct.new(:submission_id)
  def perform
    Submission.find(self.submission_id).regenerate_styles!
  end
end

据我所知,作业本身是正确创建的(因为我能够通过查询将其拉出数据库)。

问题出现在:

$ rake jobs:work
WARNING: Nokogiri was built against LibXML version 2.7.8, but has dynamically loaded 2.7.3
[Worker(host:Jarrod-Robins-MacBook.local pid:21738)] New Relic Ruby Agent Monitoring DJ worker host:MacBook.local pid:21738
[Worker(host:MacBook.local pid:21738)] Starting job worker
Processing photo
[Worker(host:MacBook.local pid:21738)] ImageJob completed after 9.5223
[Worker(host:MacBook.local pid:21738)] 1 jobs processed at 0.1045 j/s, 0 failed ...

然后rake任务卡住并且永远不会退出,并且图像本身似乎没有被重新处理。

有任何想法吗?

编辑:只是另一点; 同样的事情发生在heroku上,而不仅仅是本地。

延迟作业正在捕获所有失败作业的堆栈跟踪。 它保存在delayed_jobs表的last_error列中。 使用数据库gui也看看发生了什么。

如果你应该使用带有ActiveRecord的Collective Ideas fork作为后端,你可以照常查询模型。 要获取所有堆栈跟踪的数组,例如do

Delayed::Job.where('failed_at IS NOT NULL').map(&:last_error)

默认情况下,尝试失败25次后将删除失败的作业。 可能不再有工作了。 通过设置防止删除以进行调试

Delayed::Worker.destroy_failed_jobs = false

在你的config/initializers/delayed_job_config.rb

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM