2013-02-15 36 views
3

我使用的是python boto 2.8,我无法删除邮件。这里是我的测试代码:Boto SQS:删除RawMessage

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封邮件。而且我不想每次都保存相同的反弹电子邮件,这就是为什么我需要删除它才能保存它们。

由于

回答

3

在每一个返回的结果集的对象的是RawMessage对象,其具有方法delete。所以,如果你编码你的循环更像这样:

for msg in results: 
    body = msg.get_body() 
    body = json.loads(body) 
    message_body = json.loads(body['Message']) 
    ... 
    msg.delete() 

你应该能够删除该消息。

+0

Thnx队友!有效。我看到了这种方法,但没有任何描述。 – Granit 2013-02-16 16:16:17