使用ruby aws-sdk [ruby newbie]更改SQS消息的可见性超时

时间:2012-07-25 13:18:43

标签: ruby amazon-web-services amazon-sqs

有人可以帮助我们使用ruby aws-sdk来更改sqs消息的可见性超时吗?

这是我使用方法batch_change_message_visibility我用于测试的代码,但是我收到错误“undefined method'batch_change_message_visibility'”

require 'rubygems'
require 'aws-sdk'

sqs = AWS::SQS.new(
    :access_key_id => access_key,
    :secret_access_key => access_secret)

queue = sqs.queues.named(queue_name)

messages = []
messages << { :message => message_handle, :visibility_timeout => 5 }
queue.batch_change_message_visibility(messages)

任何想法?任何帮助都非常欢迎:) 感谢

1 个答案:

答案 0 :(得分:1)

将messages数组参数传递给batch_change_message_visibility方法时,必须使用splat运算符。

如文档here所示,您应该编写(注意在messages参数之前的*):

messages = []
messages << { :message => 'handle1', :visibility_timeout => 5 }
messages << { :message => 'handle2', :visibility_timeout => 10 }

queue.batch_change_visibility(*messages)