我在从队列中接收超过 1 条消息/行时遇到了一些问题AWS SQS
。
这是我的代码:
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()
函数采用MaxNumberOfMessages
默认为 1 条消息的参数。因此,您将需要询问更多消息。
但是,receive_messages()
文档指出:
MaxNumberOfMessages(整数)——要返回的最大消息数。Amazon SQS 永远不会返回比此值更多的消息(但是,可能返回的消息更少)。有效值为 1 到 10。默认值为 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()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句