본문 바로가기

sqs2

[SQS] 메세지 지연 시키기 (+ 15분을 넘어서) SQS 같은 경우 delay queues 라고하는 Consumer에게 메세지 노출을 지연시킬 수 있는 기능을 제공한다. 지연은 최대 15분까지 가능하다. (Visibility Timeout과는 다른 개념이기 때문에 명확하게 차이를 인지해야한다) 이 기능을 사용하면 메세지에 지연을 줄 수 있기 때문에 예약 실행 기능(정해진 시간 뒤에 특정 기능이 실행되어야하는 기능)을 개발할 때 사용될 수 있다. 예를 들어 '회원 가입 후 5분 뒤에 가입 축하 메세지를 보내기' 와 같은 기능이 있을 수 있는데, 회원 가입 도메인 이벤트에 대한 SQS 메세지 or 가입 축하 메세지 전송 SQS 메세지를 5분의 지연을 설정하고 enqueue 하면 5분 뒤에 메세지 핸들러에서 해당 메세지를 consume 하여 대상 유저에게 가.. 2023. 2. 4.
[SQS] Visibility Timeout Consumer가 Queue에서 메세지를 consume 하고 처리를 한 뒤, 해당 메세지를 acknowledge(delete)를 하기 전까지는 메세지는 Queue에 계속 남아있는다. 특정 Consumer가 메세지를 consume 하고 모든 처리가 끝날 때까지 다른 Consumer에서 동일 메세지를 consume하는 것을 막기위해서 SQS에서는 Visibility Timeout을 설정한다. 메세지가 consume 된 뒤에 다른 Consumer에게 다시 보여지기 위한 시간이라고 생각하면 될 것이다. (하지만 이는 메세지가 두 번 전달되는 것을 막기 위함은 아니다) 기본값은 30초이며, 0초~12시간 까지 설정 가능하다. 관련하여 메세지 수의 제한을 확인해야하는데, 제한을 확인하기 전에 짧게 메세지의 상태에 .. 2023. 2. 4.