반응형
메시지 하나 보내고 하나 삭제 하는 코드에서는 삭제가 잘되었다.
receive-message-service가 죽지 않도록 for문을 돌리는 과정에서 메시지 삭제할 때 에러 메시지가 발생했다.
# 에러 메시지
InvalidParameterValue: Value {값}= for parameter ReceiptHandle is invalid. Reason: The receipt handle has expired. status code: 400, request id: 값
메시지를 가져오는 코드에서 VisibilityTimeout 값을 5초로 했다. 그래서 제한 시간이 끝나면서 오류가 발생했다.
대기열에서 수신한 메시지가 다른 메시지 소비자에게 보이지 않게 되는 시간을 설정하는 것이다.
문제는 for문안에 시간을 설정 해놓아서 문제가 발생했다.
time.Sleep(time.Second * 5)
제한 시간은 5초인데 5초가 지나고 삭제를 해서 문제가 되었다.
그래서 VisibilityTimeout 값을 5초 이상으로 설정하니까 해결이 되었다.
반응형
'사이드 프로젝트 > Amazon SQS' 카테고리의 다른 글
[Amazon SQS] 메시지를 채널에 넣어서 메시지 보내기 구조를 잡았다 (0) | 2023.07.01 |
---|---|
[Amazon SQS] 서비스를 죽지 않게 for 문을 돌려보자 (0) | 2023.06.28 |
[Amazon SQS] SQS로 메시지 보내기 (0) | 2023.06.26 |
[Amazon SQS] SNS을 사용하는 것이 맞나? (0) | 2023.06.25 |
[Amazon SQS] 메시지 보관 날짜 시간 설정하는 방법 (0) | 2023.06.24 |