괴발개발 성장기

사이드 프로젝트/Amazon SQS

[Amazon SQS] SQS에서 메시지를 받으면 자동 삭제가 되는지?

지니유 2023. 6. 23. 08:22
반응형

어제 보낸 메시지가 SQS에 있다.

메시지를 보냈는데도 11개 그대로 있다는 걸 알 수 있었다.

 

그리고 aws에서도 SQS에 있는 메시지를 삭제하는 코드가 존재했다.

func DeleteMessage(sess *session.Session, queueURL *string, messageHandle *string) error {
	svc := sqs.New(sess)

	_, err := svc.DeleteMessage(&sqs.DeleteMessageInput{
		QueueUrl:      queueURL,
		ReceiptHandle: messageHandle,
	})

	if err != nil {
		return err
	}

	return nil
}

 

messageHandle 값이 중요하다. 이 값은 메시지안에 있다.

*msgResult.Messages[i].ReceiptHandle

메시지를 받으면 그 안에 값을 가지고 삭제해야한다.

 

 

메시지가 삭제 되지 않으면 원형 큐처럼 돌고 돌고 돌다가 보존 기간이 되면 삭제 된다.

 

 

# 참조

https://docs.aws.amazon.com/sdk-for-go/api/service/sqs/#SQS.DeleteMessage

 

sqs - Amazon Web Services - Go SDK

 

docs.aws.amazon.com

 

 

 

# 이슈

https://github.com/YooGenie/receive-message-service/issues/19

 

sqs가 메시지를 받으면 메시지 삭제하기 · Issue #19 · YooGenie/receive-message-service

 

github.com

 

반응형