2016-08-03 96 views
0

我有两个队列SQS ab,我想使用Python boto库将所有消息从一个队列移动到另一个队列。这是我想做到这一点:如何使用python boto库将SQS消息从一个队列移动到另一个队列?

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

后,我执行的代码,我看到“一个”没有消息(预期)和b没有消息(未预料到的!)。这可能是因为我把同一个对象放到了新队列中并删除了它。那么是否有任何方法可以复制消息以将副本放到新队列中而不是放入原始对象?或者有什么我在这里做错了?

+0

你检查了这个https://github.com/MarcelloLins/AWS-SQS-Fast-copy还是强制使用python? – error2007s

+0

是的,我想要简单的东西,没有多线程,没有Microsoft Visual Studio解决方案文件,只有10行Python代码。 – mnowotka

回答

0

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

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

试图发送收到的消息对象应引发异常 - 请检查您的日志。

相关问题