현재 amazon의 SQS를 사용하고 있으며 현재 "In Flight"인 대기열 메시지를 삭제하려고 할 때 문제가 있습니다. 수신 핸들이있는 SQS 메시지 삭제
ReceiveMessageRequest queueRequest = new ReceiveMessageRequest();
queueRequest.WithMaxNumberOfMessages(1);
queueRequest.WithQueueUrl(config.QueueURL);
queueRequest.WithAttributeName("All");
ReceiveMessageResponse response = sqs.ReceiveMessage(queueRequest);
if (response.IsSetReceiveMessageResult())
{
ReceiveMessageResult result = response.ReceiveMessageResult;
if (result.IsSetMessage())
{
if (result.Message.First() != null)
{
return new Tuple<string, string, bool>(result.Message.First().ReceiptHandle, result.Message.First().Body ?? null, false);
}
}
}
지금 핸들 및 메시지 본문을 모두받은 후, 나는 클라우드 스토리지에 영수증 핸들 문자열을 저장 (DynamoDB의 예) : 아래
몇 가지 예제 코드입니다. 내가 나중에 부하의 스토리지 서비스에서 처리하고, 다음과 유사한 뭔가 삭제를 호출한다 :
sqs.DeleteMessage(new DeleteMessageRequest() { QueueUrl = "urL", ReceiptHandle = handle });
을하지만 그 선을 실행할 때, 나는 "입력 영수증 핸들이 잘못되었습니다"오류가 발생 메시지.
참고로이 메시지가 다시 수신되지 않았으므로 영수증 핸들이 기록되고 가장 최근의 메시지 여야합니다. 또한 현재 동일한 애플리케이션 내에서 메시지를 삭제할 수 있습니다. 단순히 메시지를 수신 한 후 잠자기 한 다음 위와 같이 삭제하려고합니다.
아이디어가 있으십니까?
이 사무엘을 해결 했습니까? 나는 똑같은 문제를 겪고있는 것처럼 보인다. –