【问题标题】:Delete all messages of SQS using Python使用 Python 删除 SQS 的所有消息
【发布时间】:2015-11-16 06:37:18
【问题描述】:

我有一个包含 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 次。我在这里错过了什么?

【问题讨论】:

  • 修改count的代码部分似乎丢失了,但看起来好像您在重复删除同一条消息,同时数到50。

标签: python python-2.7 amazon-sqs


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    如果您只想执行一次,您可以通过登录您的 AWS 账户 -> sqs -> 您的 sqs 队列 -> purge 手动执行。

    【讨论】:

      猜你喜欢
      • 2012-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 1970-01-01
      • 1970-01-01
      • 2019-05-07
      相关资源
      最近更新 更多