./lib/sdb_dal/storage.rb in sdb_dal-0.0.7 vs ./lib/sdb_dal/storage.rb in sdb_dal-0.0.8
- old
+ new
@@ -13,16 +13,20 @@
@memcache_servers=nil
@aws_key_id = nil
@aws_secret_key = nil
attr_accessor :tokens
attr_accessor :memory_only
+ attr_accessor :fail_fast
def initialize( aws_key_id,
aws_secret_key,
memcache_servers,
tokens=[] ,
options={})
@memcache_servers=memcache_servers
+ if options.has_key?(:fail_fast)
+ self.fail_fast=options[:fail_fast]
+ end
if options.has_key?(:memory_only) and options[:memory_only]
self.memory_only=true
else
@aws_key_id=aws_key_id
@aws_secret_key=aws_secret_key
@@ -80,14 +84,15 @@
end
renew_s3_connection
rescue=> e
+
s= "#{e.message}\n#{e.backtrace}"
puts(s)
puts "retrying s3 get #{i.to_s}"
-
+ raise e if self.fail_fast
sleep(i*i)
end
end
return nil
end
@@ -103,9 +108,10 @@
x= real_s3.put(bucket,key,S3::S3Object.new(object),attributes)
break
rescue =>e
+ raise e if self.fail_fast
s= "#{e.message}\n#{e.backtrace}"
puts(s)
puts "retrying s3 put #{i.to_s}"
sleep(i*i)
#try again
\ No newline at end of file