Boto SQS:删除原始消息
我正在使用 Python 的 boto 2.8 版本,但我无法删除消息。以下是我的测试代码:
conn = boto.sqs.connect_to_region("us-east-1",
aws_access_key_id=AWS_ACCESS_KEY,
aws_secret_access_key=AWS_SECRET_KEY)
q = conn.get_queue("sqs_bounces")
q.set_message_class(RawMessage) //need this to be able to get message as json
results = q.get_messages(num_messages=10,visibility_timeout=30,wait_time_seconds=10)
for rs in results:
str = rs.get_body()
print str
result = json.loads(str)
rs = json.loads(result["Message"])
print rs["notificationType"]
#get the email and save it as bounced
// Do saving.....
#Delete message
//How do i delete the current message?
有没有人能告诉我怎么删除这些消息?有时候我收到 1 条消息,有时候收到 3 条。我不想每次都保存相同的退信邮件,所以我需要在保存后删除它们。
谢谢!
1 个回答
4
返回的结果集中的每个对象都是一个 RawMessage 对象,它有一个 delete
方法。所以,如果你把你的循环写得更像这样:
for msg in results:
body = msg.get_body()
body = json.loads(body)
message_body = json.loads(body['Message'])
...
msg.delete()
你就应该能够删除这个消息了。