【发布时间】:2018-12-31 08:46:31
【问题描述】:
我正在尝试运行一个进程,该进程每隔 n 秒向我们手头上的一组设备发送一系列消息到 SQS FIFO 队列:
while 1:
for i in range(0, len(device_list)):
print("Putting message on queue for {}".format(device_list[i]))
resp = sqs.send_message(
QueueUrl=url,
MessageAttributes={
'device': {'DataType': 'String', 'StringValue': device_list[i]},
'start': {'DataType': 'Number', 'StringValue': stime},
'end': {'DataType': 'Number', 'StringValue': etime}
},
MessageBody=(
'SQS message test'
),
MessageGroupId=id
)
sleep(n)
目前仅使用 20 台设备进行测试。我遇到的问题是FIFO队列只接收到我发送的第一条消息(直接检查SQS控制台,MessagesAvailable属性显示为1)。标准队列(MessagesAvailable 属性为 20)我没有同样的问题,但排序很重要,所以 FIFO 队列是我的目标。
我是 SQS 的新手,所以我不确定我的队列配置是否存在问题(使用默认设置),是否只是 SQS FIFO 队列的一个功能,或者我是否正确使用了 boto 库。我有什么遗漏或做错了吗?
【问题讨论】:
标签: python boto amazon-sqs