upload.rb: separate out post creation from upload processing.
This commit is contained in:
@@ -105,7 +105,7 @@ class Upload < ActiveRecord::Base
|
||||
end
|
||||
|
||||
module ConversionMethods
|
||||
def process_once
|
||||
def process_upload
|
||||
CurrentUser.scoped(uploader, uploader_ip_addr) do
|
||||
update_attribute(:status, "processing")
|
||||
self.source = strip_source
|
||||
@@ -129,6 +129,10 @@ class Upload < ActiveRecord::Base
|
||||
move_file
|
||||
validate_md5_confirmation_after_move
|
||||
save
|
||||
end
|
||||
end
|
||||
|
||||
def create_post_from_upload
|
||||
post = convert_to_post
|
||||
post.distribute_files
|
||||
if post.save
|
||||
@@ -140,13 +144,13 @@ class Upload < ActiveRecord::Base
|
||||
update_attribute(:status, "error: " + post.errors.full_messages.join(", "))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def process!(force = false)
|
||||
@tries ||= 0
|
||||
return if !force && status =~ /processing|completed|error/
|
||||
|
||||
process_once
|
||||
process_upload
|
||||
create_post_from_upload
|
||||
|
||||
rescue Timeout::Error, Net::HTTP::Persistent::Error => x
|
||||
if @tries > 3
|
||||
|
||||
Reference in New Issue
Block a user