小编J L*_*J L的帖子

如何使用 boto 长时间轮询亚马逊 sqs 服务?

我在亚马逊上有一个 sqs 队列,有几个消费者在轮询它。

最近我发现numberofEmptyReceives有 1000 万,这意味着我正在根据这些请求收费。

以下是我消费消息的方式

while True:
    for message in queue.receive_messages(AttributeNames=['All'], MaxNumberOfMessages=10):
Run Code Online (Sandbox Code Playgroud)

我知道有WaitTimeSeconds选项,但文档似乎表明它不做长轮询

调用在返回之前等待消息到达队列的持续时间(以秒为单位)。如果消息可用,则该调用会早于 WaitTimeSeconds 返回。如果没有消息可用并且等待时间到期,则调用成功返回,并带有空消息列表。

具体来说

如果消息可用,则该调用会早于 WaitTimeSeconds 返回。

从上面的句子似乎boto3仍然建议调用sqs以检查是否有消息。

使用 boto3 进行长时间轮询以避免收取请求费用的正确方法是什么?

设置这么简单thread.sleep吗?

我在github上也找不到源代码

boto amazon-sqs amazon-web-services boto3

4
推荐指数
1
解决办法
3391
查看次数

标签 统计

amazon-sqs ×1

amazon-web-services ×1

boto ×1

boto3 ×1