2016-10-04 3 views
1

AWS에 로그인하지 않고 대기열 메시지를 확인할 수있는 QA 팀의 UI를 개발하려고합니다.임의의 시점에 처음 10 개의 SQS 메시지를 가져온 후 다음 10 개의 SQS 메시지를 가져 오는 방법

이 UI의 가격을 낮추려면 처음 10 개의 대기열 메시지 만 표시하고 있습니다. 이제 QA 담당자가 대기열 마술을 분석 한 후 더 많은 레코드를 가져오고 싶다면 어떻게해야합니까?

가시성 제한 시간 옵션을 사용하지 않고 대기열에서 다음 10 개의 메시지를 가져올 수 있습니까?

답변

1

처음 10 개의 메시지를 삭제해야합니다. 그렇지 않으면 메시지가 계속 반환됩니다. 삭제 된 메시지도 반환 될 수 있으므로 시스템에서 중복 메시지를 처리 ​​할 수 ​​있어야합니다.

2

일시적으로 SQS 메시지를 데이터베이스에 임시로 쓰고 대신 QA 팀이 메시지를 데이터베이스에 표시하도록 할 수도 있습니다. SQS에는 페이징 또는 '다음 10'개념이 없습니다. 대기열에서 메시지를 읽고 처리하고 삭제할 때 메시지를 읽은 다음 더 많은 정보를 요구합니다. QA 목적으로 데이터베이스 레코드를 탐색하는 것이 더 나을 수도 있습니다.

+0

예. 좋은 생각입니다. 대기열에서 messesge를 가져올 최대 일괄 크기가 10이기 때문에 "10 개의 메시지"를 사용하는 모든 방법 ... 감사합니다 E.J – ifti

1

더 많은 메시지를 원하면 SQS에 더 많은 메시지를 요청하십시오.

SQS는 누군가가에 이미 첫 번째 10 개를 가지고 있지만 그 사람이 당신이라는 것을 알지 못합니다. 당신이 더 많은 것을 요구하면, 당신은 더 많은 것을 얻을 것이다.

기본적으로 표시 타이머가 30 초가 될 때까지받은 메시지에 대해 만료가 반복 될 때까지 반복적으로 묻고 묻어 동일한 메시지가 다시 표시되지 않습니다. 메시지는 "비행 중"입니다. 즉, SQS가 누군가를 삭제하거나, 시정을 수정하거나, 타이머가 만료되기를 기다리는 중입니다. 타이머가 만료되면 다시 볼 수 있습니다.

각 SQS 대기열은 승인, 삭제 또는 가시성 변경없이 최대 120,000 개의 메시지를 가져올 수 있습니다. 그 행운을 치는 행운을 비네. 제품 생산에 내 도구는 내가 그 뜻을 정확히 모르겠어요 큐 MSG를에게

소비에서 실제 서비스를 차단하지 않아야로


내가 사용 가시성 시간을 기울인다. 대기열의 기본 표시 시간 제한이 0이라고 말하면 실제 문제는 시작하는 것이 잘못되었다는 것입니다. 둘 이상의 소비자가있는 경우 기본 공개 시간 제한을 0으로 설정하면 중복 메시지 전달이 발생합니다.

visibility timeout에 대한 설명서를 검토하십시오. 가시성 제한 시간은 소비자가 메시지를 삭제하거나 표시 시간 제한을 변경하지 않고 메시지를 보관할 수있는 기간입니다. 은 다른 소비자에게 배달됩니다.. 아직 소비되지 않은 메시지 또는 소비되고 시간 초과가 경과되거나 재설정 된 메시지의 가용성을 지연시키지 않습니다.

응용 프로그램을 차단하지 않고 메시지를 검사하려면 대기열에서 메시지를 가져 와서 필요한만큼 많은 요청을 보내고 (10 개가 넘는 경우 두 개 이상의 요청을 한 경우) 즉시 API 요청을 보내서 해당 메시지에 대한 공개 시간 제한이 0입니다. 이렇게하면 응용 프로그램 (또는 응용 프로그램이 백 로그 된 경우이 도구로 다시 소비 됨)이 즉시 해제됩니다.


다른 방법 : 대기열 메시지 분석을위한 진정한 독립적 경로 인 경우 다른 접근 방법 인 SNS Fanout을 사용합니다.

메시지 생성자가 직접 SQS에 메시지를 보내는 대신, 나는 그들을 SNS 주제로 보냅니다. 기본 큐와 보조 큐는 모두이 항목의 구독자입니다. 응용 프로그램은 기본 대기열에서 사용되며 보조 대기열은 각 메시지의 두 번째 복사본을 수집하기 위해 대기합니다. 메시지가 보조 대기열에서 만료되면 대기열이 사라집니다 (기본값 = 4 일). 이것은 문제 해결을위한 도구로서뿐만 아니라 예기치 못한 또는 처리되지 않은 조건으로 인해 SQS에서받은 메시지가 나중에 손실되는 부적절한 메시지 처리를 초래하는 응용 프로그램 소비자에게 치명적인 모든 것을 처리하는 데 매우 유용합니다.

+0

답변 해 주셔서 감사합니다. 제품이 생산 중이며 도구가 실제로 대기열 msgs에서 실제 서비스를 차단해서는 안되기 때문에 가시성 시간 제한을 사용할 수 없습니다. – ifti

관련 문제