def batch_change_visibility *args
args = args.flatten
if args.first.is_a?(Integer)
timeout = args.shift
messages = args.collect{|m| [m, timeout] }
else
messages = args.collect{|m| [m[:message], m[:visibility_timeout]] }
end
entries = []
messages.each do |msg,timeout|
handle = msg.is_a?(ReceivedMessage) ? msg.handle : msg
entries << {
:id => entries.size.to_s,
:receipt_handle => handle,
:visibility_timeout => timeout,
}
end
response = client.change_message_visibility_batch(
:queue_url => url, :entries => entries)
failures = batch_failures(entries, response)
raise Errors::BatchChangeVisibilityError.new(failures) unless
failures.empty?
nil
end