SendMessage 또는 SendMessageBatch API 호출을 사용하여 Amazon SQS 대기열에 메시지를 전송한 후, ReceiveMessage API 호출에서 해당 메시지를 검색할 수 있습니다. ReceiveMessage API 호출이 대기열에서 메시지를 찾지 못하면 빈 수신 결과를 반환합니다.
Amazon CloudWatch NumberOfMessagesSent 지표를 사용하여 메시지가 Amazon SQS 대기열로 전송되었는지 확인합니다. Amazon SQS SendMessage 또는 SendMessageBatch API 작업을 사용하면 전송된 메시지를 확인할 수 있습니다.
메시지가 SQS 대기열에 전송될 수 있지만 폴링에 사용할 수는 없습니다. Amazon SQS 폴링에 대한 자세한 내용은 적절한 폴링 모드 사용을 참조하십시오.
짧은 폴링
쿼리에서 메시지를 찾지 못한 경우에도 짧은 폴링 응답이 즉시 반환됩니다. Amazon SQS는 서버의 하위 집합을 샘플링하여 해당 서버에서만 메시지를 반환합니다. 자세한 내용은 ]( 폴링을 사용한 메시지 사용[을 참조하십시오.
긴 폴링
긴 폴링은 모든 서버를 사용하여 메시지를 쿼리합니다. Amazon SQS는 지정된 최대 수까지 사용 가능한 메시지를 하나 이상 수집한 후 응답을 보냅니다. 폴링 대기 시간이 만료된 경우에만 빈 응답이 반환됩니다. ReceiveMessage 대기 시간에 낮은 값을 지정하는 메시지가 대기열에 포함된 경우 빈 응답을 받을 수 있습니다. 자세한 내용은 ]( 폴링을 사용한 메시지 사용[을 참조하십시오.
동일한 그룹 ID의 메시지를 전송 중인지 확인
FIFO 대기열의 메시지 순서는 메시지 그룹 수준에서 유지됩니다. 메시지 그룹 ID로 받은 메시지는 해당 메시지를 삭제하거나 볼 수 있게 되지 않는 한 동일한 그룹 ID에 대해 더 이상의 메시지를 반환하지 않습니다. 메시지가 대기열로 전달될 수는 있지만, 전송 중이거나 보이지 않을 경우 사용할 수 없습니다.
대기열이 비어 있는지 확인하려면 긴 폴링을 사용하여 ReceiveMessage API를 호출하십시오. 또한 ApproximateNumberOfMessagesVisible, ApproximateNumberOfMessagesNotVisible 및 ApproximateNumberOfMessagesDelayed CloudWatch 지표를 사용할 수도 있습니다. 몇 분 동안 모든 지표 값이 0으로 설정된 경우 대기열은 비어 있습니다.