두 이벤트가 3초 간의 간격으로 전송되고, sqs의 Receive message wait time는 19초일 때, 워커에서 두 이벤트를 19초 간격으로 수신할까?

jinwook han·2021년 1월 4일
1

aws sqs 설정

목록 보기
3/5

두 이벤트가 3초 간의 간격으로 전송되고, sqs의 Receive message wait time는 19초일 때, 워커에서 두 이벤트를 19초 간격으로 수신할까?
-> 아니오.

Receive message wait time

Recieve message wait time은 sqs의 설정 중 하나다.

Recieve message wait time이 0이면 sqs는 short polling으로 작동하고,
Recieve message wait time이 0보다 크면 sqs는 long polling으로 작동한다.
https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html

long polling 모드에서는 sqs는 설정한 Recieve message wait time만큼 기다리고 이벤트들을 모아서 가져온다.
한 번에 여러 개의 이벤트들을 가져온다.(이 부분은 short polling도 마찬가지)

구체적인 내용은 모르겠다.

두 이벤트가 3초 간의 간격으로 전송되고, sqs의 Receive message wait time는 19초일 때, 워커에서 두 이벤트를 19초 간격으로 수신하지 않고 3초 간격으로 수신하는 것을 확인했다.

실험

1. sqs의 Receive message wait time를 19초로 조정한다.

2. aws lambda로 sqs 이벤트를 수신하는 워커를 만든다.

sqs가 lambda를 트리거하도록 설정한다.

3. 수동으로 1분간 3초마다 event를 sqs에 보낸다.

4. lambda 로그를 확인한다. 2~3초마다 이벤트를 수신한 것을 확인할 수 있다.

0개의 댓글