【发布时间】:2016-10-14 16:30:36
【问题描述】:
我正在尝试使用 Boto 通过消息 ID 获取消息。
这个问题:
Trying to Get SQS Message ID with Boto
让我觉得 Boto 可能有办法通过消息 ID 获取消息,但我在 Boto 文档中找不到任何内容。
有没有办法通过消息 id 获取消息?
【问题讨论】:
标签: boto amazon-sqs
我正在尝试使用 Boto 通过消息 ID 获取消息。
这个问题:
Trying to Get SQS Message ID with Boto
让我觉得 Boto 可能有办法通过消息 ID 获取消息,但我在 Boto 文档中找不到任何内容。
有没有办法通过消息 id 获取消息?
【问题讨论】:
标签: boto amazon-sqs
不,没有。 SQS API 不提供在给定消息 ID 的情况下检索消息正文的方法。您所能做的就是从队列中读取消息。
您链接到的问题是关于如何从您已阅读的消息中获取消息 ID。这是可能的,详细信息可以在该消息中找到。
【讨论】:
我不知道你的问题到底是什么,但是,就我而言:
我一次从 Sqs 收到大约 20 条消息并异步处理它们。消息完成后,我想将其从 sqs 中删除。因此,我将正在进行的消息放入具有 Id 值的 HashMap 中。
当我处理完消息后,我很容易从 Map 中得到它。
如果你有消息的 Id,你之前也应该有 Message 对象。如果消息数量的范围不是那么多,你也可以使用地图。
Message msg = onProcess.get(processId);
sqs.deleteMessage(new DeleteMessageRequest().withQueueUrl(queueUrl).withReceiptHandle(msg.getReceiptHandle()));
onProcess.remove(processId);
【讨论】: