我遇到了很大的问题,试图让delayed_job与Amazon S3和Paperclip一起工作。有关于如何做到这一点的几篇文章,但无论出于何种原因,它根本不适合我。我已经删除了一些其他人正在做的事情 - 最初我在regenerate_styles中保存了一个(validations => false),但这似乎导致了无限循环(由于after save catch),并且没有似乎是必要的(因为网址已经保存,只是图片没有上传)。下面是我的模型文件中的相关代码,submission.rb:delayed_job和回形针 - 图像没有处理,但没有错误?
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上,不只是在本地。