2016-08-03 6 views
0

У меня две очереди SQS a и b, и я хочу переместить все сообщения из одной очереди в другую с помощью библиотеки boto Python. Это, как я пытался сделать это:Как перенести сообщение SQS из одной очереди в другую с помощью библиотеки boto python?

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) 

При попытке отправить полученный объект сообщения необходимо создать исключение - проверьте свои журналы.

 Смежные вопросы

  • Нет связанных вопросов^_^