我使用AWS sdk开发基于SQS的队列pub-sub。
在非常基本的原型中,我将消息同时推送到我已经创建的队列中。但是,我怎样才能确定我的消息被推送到队列中?
无论出于何种原因,保证推送的消息在此过程中不会失败的保证是什么?
Amazon API查询提供ResponseMetadata,其具有与该特定发送消息请求相关联的RequestID。是否足以确认将消息推送到队列?
String requestId = sqs.sendMessage(request).getSdkResponseMetadata().getRequestId();
亚马逊发送消息请求是否未向Http代码提供响应正文?
答案 0 :(得分:1)
见SendMessageResult。有一个getMessageId()
可以为您提供由SQS分配给消息的消息ID。如果你得到了,那么这个消息肯定会得到传递。收到邮件时,邮件的使用者可以访问此相同的ID,ID为designed to be globally unique for an extended period of time。
答案 1 :(得分:0)
AWS SendMessageRequest会为推送正在发送的邮件的每个请求发送状态代码。
int statusCode = sendMessageResult.getSdkHttpMetadata().getHttpStatusCode();
但是由于我们不知道批处理中的哪些消息未被成功推送,因此这将导致批量消息被推送失败。