내보내기(0) 인쇄
모두 확장

메시지 가져오기

업데이트 날짜: 2013년 11월

Get Messages 작업은 큐 앞에서 하나 이상의 메시지를 검색합니다.

다음과 같이 Get Messages 요청을 생성할 수 있습니다. HTTPS를 사용하는 것이 좋습니다. myaccount는 사용자의 저장소 계정 이름으로 바꾸고 myqueue는 사용자의 큐 이름으로 바꿉니다.

 

메서드 요청 URI HTTP 버전

GET

https://myaccount.queue.core.windows.net/myqueue/messages

HTTP/1.1

에뮬레이트된 저장소 서비스에 대해 요청을 수행할 때는 에뮬레이터 호스트 이름 및 큐 서비스 포트를 127.0.0.1:10001으로 지정하고 뒤에 에뮬레이트된 저장소 계정 이름을 붙입니다.

 

메서드 요청 URI HTTP 버전

GET

http://127.0.0.1:10001/devstoreaccount1/myqueue/messages

HTTP/1.1

자세한 내용은 About Development Storage를 참조하십시오.

요청 URI에 다음과 같은 추가 매개 변수를 지정할 수 있습니다.

 

매개 변수 설명

numofmessages

선택 사항입니다. 최대 32까지 큐에서 검색할 메시지 수를 지정하는 0이 아닌 정수 값입니다. 표시 가능한 수가 더 적으면 해당 표시 가능한 메시지가 반환됩니다. 기본적으로 이 작업으로는 메시지에서 단일 메시지가 검색됩니다.

visibilitytimeout

필수 사항입니다. 서버 시간을 기준으로 새로운 표시 제한 시간 값(초)을 지정합니다. 새 값은 1초 이상이어야 하며, 7일을 초과할 수 없으며, 2011-08-18 버전 이전의 REST 프로토콜 버전에서는 2시간을 초과할 수 없습니다. 메시지의 표시 제한 시간은 만료 시간보다 큰 값으로 설정할 수 있습니다.

timeout

선택 사항입니다. timeout 매개 변수는 초 단위로 표시됩니다. 자세한 내용은 큐 서비스 작업의 제한 시간 설정를 참조하십시오.

다음 표에서는 필수 요청 헤더와 선택적 요청 헤더에 대해 설명합니다.

 

요청 헤더 설명

Authorization

필수 사항입니다. 인증 체계, 계정 이름 및 서명을 지정합니다. 자세한 내용은 Azure 저장소 서비스에 대한 인증를 참조하십시오.

Date 또는 x-ms-date

필수 사항입니다. 요청의 UCT(협정 세계시)를 지정합니다. 자세한 내용은 Azure 저장소 서비스에 대한 인증를 참조하십시오.

x-ms-version

선택 사항입니다. 이 요청에 사용할 작업의 버전을 지정합니다. 자세한 내용은 Azure 저장소 서비스 버전 관리를 참조하십시오.

x-ms-client-request-id

선택 사항입니다. 저장소 분석 로깅을 사용하도록 설정한 경우 분석 로그에 기록된 1KB 문자 제한의 클라이언트에서 생성한 불투명 값을 제공합니다. 클라이언트 쪽 작업과 서버가 받은 요청의 상관 관계를 지정하는 데 이 헤더를 사용하는 것이 좋습니다. 자세한 내용은 저장소 분석 로깅 정보Microsoft Azure 로깅: 로그를 사용하여 저장소 요청 추적을 참조하십시오.

없음.

응답에는 HTTP 상태 코드 및 응답 헤더 집합이 포함되어 있습니다.

작업에 성공하면 상태 코드 200(정상)이 반환됩니다.

상태 코드에 대한 자세한 내용은 상태 및 오류 코드를 참조하십시오.

이 작업의 응답에는 다음과 같은 헤더가 포함됩니다. 응답에는 추가 표준 HTTP 헤더가 포함될 수도 있습니다. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양을 따릅니다.

 

응답 헤더 설명

x-ms-request-id

이 헤더는 수행된 요청을 고유하게 식별하며, 이 헤더를 사용해서 요청 문제를 해결할 수 있습니다. 자세한 내용은 API 작업 문제 해결를 참조하십시오.

x-ms-version

요청을 실행하는 데 사용되는 큐 서비스의 버전을 나타냅니다. 이 헤더는 2009-09-19 버전 이상에 대해 수행된 요청에 대해 반환됩니다.

Date

응답이 시작된 시간을 나타내는 서비스에서 생성된 UTC 날짜/시간 값입니다.

Get Messages 작업의 응답 XML은 다음 형식으로 반환됩니다.

MessageID 요소는 큐에서 메시지를 식별하는 GUID 값입니다. 이 값은 큐 서비스에서 메시지에 할당되고 클라이언트에 불투명합니다. 이 값은 PopReceipt 요소 값과 함께 사용해서 Get Messages 작업으로 검색한 후 큐에서 메시지를 삭제할 수 있습니다. PopReceipt 값은 또한 클라이언트에 불투명하며, 메시지 삭제 작업으로 메시지를 삭제할 수 있도록 보장하기 위한 목적으로만 사용됩니다.

InsertionTime, ExpirationTimeTimeNextVisible 요소는 UTC 값으로 표현되며, RFC 1123 설명에 따라 형식이 지정됩니다.

DequeueCount 요소는 처음에 메시지를 큐에서 제거할 때 값 1을 갖습니다. 이 값은 이후에 메시지를 큐에서 제거할 때마다 증가합니다.

note참고
DequeueCount 요소는 2009-09-19 버전의 큐 서비스로 큐를 만든 경우에만 응답 본문에 반환됩니다.

<QueueMessagesList>
    <QueueMessage>
      <MessageId>string-message-id</MessageId>
      <InsertionTime>insertion-time</InsertionTime>
      <ExpirationTime>expiration-time</ExpirationTime>
      <PopReceipt>opaque-string-receipt-data</PopReceipt>
      <TimeNextVisible>time-next-visible</TimeNextVisible>
      <DequeueCount>integer</DequeueCount>
      <MessageText>message-body</MessageText>
    </QueueMessage>
</QueueMessagesList>

Response Status:
HTTP/1.1 200 OK
Response Headers:
Transfer-Encoding: chunked
Content-Type: application/xml
Date: Fri, 16 Sep 2011 21:04:30 GMT
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0

Response Body:
<?xml version="1.0" encoding="utf-8"?>
<QueueMessagesList>
  <QueueMessage>
    <MessageId>5974b586-0df3-4e2d-ad0c-18e3892bfca2</MessageId>
    <InsertionTime>Fri, 09 Oct 2009 21:04:30 GMT</InsertionTime>
    <ExpirationTime>Fri, 16 Oct 2009 21:04:30 GMT</ExpirationTime>
    <PopReceipt>YzQ4Yzg1MDItYTc0Ny00OWNjLTkxYTUtZGM0MDFiZDAwYzEw</PopReceipt>
    <TimeNextVisible>Fri, 09 Oct 2009 23:29:20 GMT</TimeNextVisible>
    <DequeueCount>1</DequeueCount>
    <MessageText>PHRlc3Q+dGhpcyBpcyBhIHRlc3QgbWVzc2FnZTwvdGVzdD4=</MessageText>
  </QueueMessage>
</QueueMessagesList>

이 작업은 계정 소유자 및 이 작업을 수행할 수 있는 권한이 있는 공유 액세스 서명을 갖는 모든 사용자가 수행할 수 있습니다.

메시지 콘텐츠는 메시지 추가(REST API) 작업에 사용된 모든 형식으로 검색됩니다.

큐에서 메시지를 검색하면 응답에 메시지 및 메시지를 삭제하는 데 필요한 PopReceipt 값이 포함됩니다. 메시지는 큐에서 자동으로 삭제되지 않지만, 검색된 후 visibilitytimeout 매개 변수로 지정된 시간 간격 동안 다른 클라이언트에 표시되지 않습니다.

여러 메시지가 검색된 경우 각 메시지에는 연결된 PopReceipt가 포함됩니다. 한 번에 검색할 수 있는 최대 메시지 수는 32개입니다.

메시지를 검색하는 클라이언트는 처리된 후 그리고 visibilitytimeout 매개 변수의 값에 따라 계산되는 응답의 TimeNextVisible 요소로 지정된 시간 전에 메시지를 삭제할 것으로 예상됩니다. visibilitytimeout 값은 TimeNextVisible 값을 확인하기 위해 메시지가 검색된 시간에 추가됩니다.

클록 스큐(clock skew)로 인해 지정된 제한 시간이 만료되기 전 특정 visibilitytimeout으로 검색된 메시지가 다시 표시될 수 있습니다. 클라이언트는 PopReceipt에 기반한 다른 클라이언트에 의해 큐에서 메시지가 이미 제거되었음을 유추할 수 있습니다. 이는 메시지를 큐에서 제거할 때마다 고유합니다. 클라이언트의 PopReceipt가 더 이상 메시지를 삭제하거나 업데이트할 수 없고 클라이언트가 404(찾을 수 없음) 오류를 받는 경우, 다른 클라이언트에 의해 큐에서 메시지가 제거된 것입니다.

일반적으로 소비자가 Get Messages를 통해 메시지를 검색하면 visibilitytimeout 기간이 만료될 때까지 삭제를 수행할 수 있도록 메시지가 보존되지만 항상 그런 것은 아닙니다. visibilitytimeout 기간이 만료되면 메시지가 다시 다른 소비자에게 표시됩니다. 메시지가 이후에 다른 소비자에 의해 검색 및 삭제되지 않은 경우 원래 소비자가 최초 PopReceipt를 사용해서 메시지를 삭제할 수 있습니다.

메시지를 처음 검색하면 해당 DequeueCount 속성이 1로 설정됩니다. 메시지가 삭제되지 않았고 이후에 다시 검색된 경우 DequeueCount 속성이 증가합니다. 클라이언트는 이 값을 사용해서 메시지가 검색된 횟수를 확인할 수 있습니다.

visiblitytimeout 또는 numofmessages 매개 변수가 범위를 벗어나면 다음 예에 표시된 것처럼 추가 오류 정보와 함께 서비스가 상태 코드 400(잘못된 요청)을 반환합니다.


HTTP/1.1 400 One of the query parameters specified in the request URI is outside the permissible range.
Connection: Keep-Alive
Content-Length: 455
Via: 1.1 TK5-PRXY-22
Date: Wed, 02 May 2012 19:37:23 GMT
Content-Type: application/xml
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 6a03526c-ca2c-4358-a63a-b5d096988533
x-ms-version: 2011-08-18

<?xml version="1.0" encoding="utf-8"?>
   <Error>
      <Code>OutOfRangeQueryParameterValue</Code>
      <Message>One of the query parameters specified in the request URI is outside the permissible range.
               RequestId:6a03526c-ca2c-4358-a63a-b5d096988533
               Time:2012-05-02T19:37:24.2438463Z
      </Message>
     <QueryParameterName>numofmessages</QueryParameterName>
     <QueryParameterValue>0</QueryParameterValue>
     <MinimumAllowed>1</MinimumAllowed>
     <MaximumAllowed>32</MaximumAllowed>
   </Error>

표시:
© 2014 Microsoft