我有两个队列SQS a
和b
,我想使用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
中没有消息(不是预料到的!)。这可能是因为我将相同的对象放到新队列中并将其删除。那么有没有办法复制消息以将副本放入新队列而不是放置原始对象?或者还有其他一些我在这里做错了?
答案 0 :(得分:0)
您需要将邮件正文写入新邮件并发送到队列b。
m = boto.sqs.message.RawMessage(body=msg.get_body())
b.write(m)
尝试发送收到的邮件对象应该引发异常 - 检查您的日志。