簡體   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