如何从 AWS 中的 SQS 队列接收超过 1 条消息?

raxor2k

我在从队列中接收超过 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SQS队列中的确认消息

轮询AWS SQS队列并从队列中删除收到的消息的最佳实践?

AWS-SDK:SQS如何识别未在BatchDeleteOperation中删除的消息

队列中的消息位置/索引(SQS或RabbitMQ)

AWS SQS Java。并非从SQS队列中检索到所有消息

如何使用Boto获取AWS sqs消息已在飞行中

处理后从SQS队列中删除消息

我们可以在AWS SQS FIFO队列中更新消息吗?

AWS SQS接收消息-如何知道队列何时为空

AWS SQS FIFO队列-我可以让多个使用者同时提取10条消息吗?

跨AWS账户在2个SQS队列中复制消息的最佳方法

AWS SQS FIFO-如何一次获取十条以上消息?

实时监控AWS中的SQS队列

AWS SQS始终返回1条消息(PHP SDK)

AWS,SQS,计算10条消息的visabilityTimeout

即使将MaxNumberOfMessages参数设置为10并且队列中有13条消息,AWS SQS也会返回2至4条消息

如何从aws sqs fifo队列中读取消息?

AWS SQS:可见性超时到期后,FIFO队列中的消息顺序是什么?

Amazon AWS SQS队列消息保留期

如何通过在Discord.js中拆分1条uis超过4096个字符的消息来发送2条消息

如何在nodeJS中获取AWS SQS队列ARN?

如何在Rails中创建AWS SQS FIFO队列?

SQS:获取SQS队列中的消息数

AWS SQS如何工作以将消息从队列传递到客户端

AWS SQS 和 DocuSign Connect -“队列接收错误:请求中包含的安全令牌无效。”

AWS SQS 如何重置消息的 ReceiveCount

AWS SQS 仅从两个不同的分派接收 1 条消息

我想知道 AWS SQS 队列中的一批消息何时完成

AWS SQS - 使用节点 JS 检索队列中的所有消息