我刚刚开始使用AWS的SQS服务。好吧,我确实知道我们可以使用收到消息时得到的ReceiptHandle
删除进程,但是我想删除消息在队列中时将其删除或将其移到死信队列中。
是否可能因为文档中没有提及它?如果可以,请提供提示或代码或任何指向它的链接。
谢谢
就像这种方法使用ReceiptHandle
删除邮件一样。
for (Message m : messages) {
sqs.deleteMessage(queueUrl, m.getReceiptHandle());
}
答案 0 :(得分:0)
进行更多研究后,我在AWS SQS开发人员指南中找到了它。
每次您从队列中收到消息时,都会收到该消息的回执句柄。该句柄与接收消息的操作相关,而不与消息本身相关。要删除消息或更改消息可见性,必须提供收据句柄(不是消息ID)。因此,您必须始终收到一条消息,然后才能删除它(不能将消息放入队列中然后再调用它)。收据句柄的最大长度为1,024个字符。
答案 1 :(得分:0)
虽然您无法不删除它们而选择性地删除消息,但可以使用“清除队列”功能一次删除队列中的所有消息。
更多详细信息列在delete-all-messages-in-an-amazon-sqs-queue
如果您要以编程方式执行此操作,则各种SDK也都支持。
Here是使用Python SDK进行操作的示例