./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