使用Python删除SQS的所有消息

时间:2015-11-16 06:37:18

标签: python python-2.7 amazon-sqs

我有一个包含n条消息的Amazon SQS队列,我想使用python代码从队列中删除消息。我目前的代码如下:

import boto.sqs

sqs = boto.sqs.connect_to_region("ap-southeast-1", aws_access_key_id='XXX', aws_secret_access_key='XXX')
q = sqs.get_queue("grand_torm") #SQS queue name

#text_file = open('download.json', 'w')
m = q.read(visibility_timeout=15)
if m == None:
    print "No message!"
else:
    count = 0 
    while (count < 50):
        q.delete_message(m)
        print "DELETED"

但是这一次只删除一条消息,只有“DELETED”被打印50次。我在这里缺少什么?

1 个答案:

答案 0 :(得分:4)

如果要删除队列中的所有邮件,可以使用q.purge()

注意,此操作可能需要至少60秒才能完成。此外,为了使其正常工作,您必须具有sqs:PurgeQueue权限。有关详细信息,请参阅the AWS docsthe boto docs