gpt4 book ai didi

python - 如何从 AWS 中的 SQS 队列接收多于 1 条消息?

转载 作者:行者123 更新时间:2023-12-05 09:18:26 26 4
gpt4 key购买 nike

我在 AWS SQS 中从我的队列接收超过 1 条消息/行时遇到一点问题。

这是我的代码:

import boto3
import boto

AWS_ACCESS_KEY = '*****'
AWS_SECRET_ACCESS_KEY = '******'

sqs = boto3.resource('sqs', aws_access_key_id=AWS_ACCESS_KEY,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
region_name='us-east-2'
)

queue_name = 'Messages.fifo'
queue = sqs.get_queue_by_name(QueueName=queue_name)
messages = queue.receive_messages()


for message in messages:
print('Body: {0}'.format(message.body))

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

receive_messages() 函数采用默认为 1 条消息的 MaxNumberOfMessages 参数。因此,您将需要请求更多消息。

然而,receive_messages() documentation状态:

MaxNumberOfMessages (integer) -- The maximum number of messages to return. Amazon SQS never returns more messages than this value (however, fewer messages might be returned). Valid values are 1 to 10. Default is 1.

因此,您可能无法在每次通话中收到全部消息。


例子:

import boto3

sqs = boto3.resource('sqs')
queue = sqs.get_queue_by_name(QueueName='my-queue-name')
messages = queue.receive_messages(MaxNumberOfMessages=10)
for message in messages:
print(message.body)
message.delete()

关于python - 如何从 AWS 中的 SQS 队列接收多于 1 条消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44483044/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com