반응형
메시지를 한번 받으면 서비스가 죽는 구조였다.
그래서 for문을 통해서 계속 서비스가 돌아가게 만들어 보자!
for {
time.Sleep(time.Second * 5)
msgResult, _ := service.GetMessages(sess, &queueURL, &timeout)
if len(msgResult.Messages) != 0 {
for i, _ := range msgResult.Messages {
fmt.Println(i, "번째 메시지 바디내용", *msgResult.Messages[i].Body)
messageHandle := *msgResult.Messages[i].ReceiptHandle
if messageHandle == "" {
log.Println("You must supply message receipt handle (-m MESSAGE-HANDLE)")
}
err = service.DeleteMessage(sess, &queueURL, &messageHandle)
if err != nil {
log.Println("Got an error deleting the message:", err)
}
log.Println("Deleted message from queue with URL " + queueURL)
}
} else {
log.Println("서비스2 -큐에 아무것도 없음!!")
}
}
1) 첫번째 for문은 SQS에서 메시지를 계속 가져온다
2) 가져온 메시지들을 for문을 통해서 보낸다.
3) 그리고 보낸 메시지들을 삭제한다
4) SQS에 메시지가 없으면 else문으로 간다.
이제 이부분을 고루틴을 사용하여 만들어야겠다. 이 때 채널을 이용해서 해보자!
# 보충
Consumer : 메시지를 수신하는 주체. Queue에 직접 접근하여 메시지를 가져온다.
# 참조
https://github.com/YooGenie/receive-message-service/issues/21
반응형
'사이드 프로젝트 > Amazon SQS' 카테고리의 다른 글
[slack] 슬랙(slack)으로 에러 메시지를 받기 위해서 slack에서 설정하기 (0) | 2023.07.06 |
---|---|
[Amazon SQS] 메시지를 채널에 넣어서 메시지 보내기 구조를 잡았다 (0) | 2023.07.01 |
[Amazon SQS] SQS에서 메시지 삭제하는 과정에서 에러 (0) | 2023.06.27 |
[Amazon SQS] SQS로 메시지 보내기 (0) | 2023.06.26 |
[Amazon SQS] SNS을 사용하는 것이 맞나? (0) | 2023.06.25 |