1
偶爾會有一項工作會增加嘗試,但不會執行方法regenerate_styles
。我注意到,如果我手動傳遞一個方法rengerate_styles
到任何失敗的工作 - 100%的時間總是解決問題。有沒有辦法在Delayed :: Job中添加一個回調失敗的嘗試?
因此,如果圖像不處理,我經過:
Photo.find(image).regenerate_styles!
它按預期工作。
是否可以編寫一個檢測失敗嘗試的回調函數並運行一個方法?或者在這段代碼中有一些區別於它爲什麼不處理某些時間。
模型
after_save do |image|
if image.source_changed?
Delayed::Job.enqueue PhotoJob.new(image.id)
end
end
def regenerate_styles!
self.photo.reprocess!
self.processing = false
self.save(false)
end
的photojob
class PhotoJob < Struct.new(:image_id)
def perform
Photo.find(self.image_id).regenerate_styles!
end
end
謝謝西蒙娜!這幫了一大堆忙。 – Trip 2011-02-10 14:32:27