无法使用 boto3 将消息写入 SQS
Can't write message to SQS using boto3
我正在使用 AWS 库 boto3 连接到他们的 SQS 服务。我正在尝试连接、读取和写入队列中的消息,但这似乎不起作用,文档也没有帮助
这是我的代码,谁能看出我做错了什么?
#Connect to a session
session = Session(aws_access_key_id=SQSAccessKey, aws_secret_access_key=SQSSecretKey,region_name=sqsRegion)
#Connect to a resource
sqs= session.resource('sqs')
queue = sqs.get_queue_by_name(QueueName=transactionQueue)
print(queue.url)
# Create a new message
print 'creating new message'
toWrite = 'hello world'
response = queue.send_message(MessageBody=toWrite)
print(response.get('MessageId'))
#Reading messages in queue
messages = queue.receive_messages()
print 'there are %s messages in the queue' % len(messages)
for message in messages:
# SQS Message
message.body
message.delete()
将新消息发送到队列(并打印出消息 ID)后,我尝试读取队列中的消息,但returns没有新消息,就好像什么都没写一样。
我做错了什么吗?
谢谢!
当队列较小时,您不能保证会收到任何消息作为响应。这是一个 属性 的分布式队列。有关详细信息,请参阅 this page。
这里有几件事在起作用。一方面,我不小心使用了另一个组件正在读取的队列(并删除了它的消息)。我不知道这一点。此外,Jordon 的评论也是一个问题,因为我正在测试一次读取一个。
我正在使用 AWS 库 boto3 连接到他们的 SQS 服务。我正在尝试连接、读取和写入队列中的消息,但这似乎不起作用,文档也没有帮助
这是我的代码,谁能看出我做错了什么?
#Connect to a session
session = Session(aws_access_key_id=SQSAccessKey, aws_secret_access_key=SQSSecretKey,region_name=sqsRegion)
#Connect to a resource
sqs= session.resource('sqs')
queue = sqs.get_queue_by_name(QueueName=transactionQueue)
print(queue.url)
# Create a new message
print 'creating new message'
toWrite = 'hello world'
response = queue.send_message(MessageBody=toWrite)
print(response.get('MessageId'))
#Reading messages in queue
messages = queue.receive_messages()
print 'there are %s messages in the queue' % len(messages)
for message in messages:
# SQS Message
message.body
message.delete()
将新消息发送到队列(并打印出消息 ID)后,我尝试读取队列中的消息,但returns没有新消息,就好像什么都没写一样。
我做错了什么吗?
谢谢!
当队列较小时,您不能保证会收到任何消息作为响应。这是一个 属性 的分布式队列。有关详细信息,请参阅 this page。
这里有几件事在起作用。一方面,我不小心使用了另一个组件正在读取的队列(并删除了它的消息)。我不知道这一点。此外,Jordon 的评论也是一个问题,因为我正在测试一次读取一个。