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