如何使用python boto库将SQS消息从一个队列移动到另一个队列?

时间:2016-08-03 14:21:38

标签: python amazon-web-services boto amazon-sqs

我有两个队列SQS ab,我想使用Python boto库将所有消息从一个队列移动到另一个队列。这就是我尝试这样做的方式:

rs = a.get_messages()
while rs:
  msg = rs[0]
  if not msg:
    break
  b.write(msg)
  a.delete_message(msg)
  rs = a.get_messages()

执行该代码后,我发现'a'(预期)中没有消息,b中没有消息(不是预料到的!)。这可能是因为我将相同的对象放到新队列中并将其删除。那么有没有办法复制消息以将副本放入新队列而不是放置原始对象?或者还有其他一些我在这里做错了?

1 个答案:

答案 0 :(得分:0)

您需要将邮件正文写入新邮件并发送到队列b。

m = boto.sqs.message.RawMessage(body=msg.get_body())
b.write(m)

尝试发送收到的邮件对象应该引发异常 - 检查您的日志。