2016-08-03 76 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) 

試圖發送收到的消息對象應引發異常 - 請檢查您的日誌。

相關問題