태스크 생성 메서드 선택

BufferTask 메서드 또는 CreateTask 메서드를 사용하여 HTTP 태스크를 만들 수 있습니다. 이 페이지에서는 HTTP 태스크를 만드는 두 가지 메서드 중 하나를 선택하는 방법을 설명합니다.

BufferTask 메서드를 사용하면 HTTP 요청을 큐에 전송하여 태스크를 만들 수 있습니다. CreateTask 메서드를 사용하면 태스크 객체를 구성하여 태스크를 만들 수 있습니다. 대부분의 사용 사례에서는 태스크 객체를 명시적으로 생성할 필요가 없습니다. 태스크를 만드는 가장 좋은 메서드는 큐에 큐 수준 라우팅이 있는지에 따라 달라집니다.

시작하기 전에

다음 사용 사례 목록을 확인하여 해당하는 사항이 있는지 확인하세요.

  • REST API가 아닌 RPC API 또는 클라이언트 라이브러리를 사용하여 태스크를 만들려고 함
  • App Engine 타겟이 될 수도 있고 아닐 수도 있는 일반 HTTP 타겟을 위한 더 일반적인 태스크 객체로서보다는 App Engine 태스크 객체로서 태스크를 만들려고 함

둘 중 하나라도 해당되면 한 가지 방법(CreateTask 메서드)만 지원되므로 태스크 생성 메서드를 선택할 필요가 없습니다. 태스크 유형의 CreateTask 문서로 바로 이동합니다.

큐에 큐 수준 라우팅이 있는지 확인

  1. 터미널에서 다음 gcloud CLI 명령어를 실행합니다.

    gcloud tasks queues describe QUEUE_NAME

    QUEUE_NAME을 큐 이름으로 바꿉니다.

  2. 출력에서 httpTarget 필드를 찾고 uriOverride가 설정되었는지 확인합니다.

    • 출력에 host가 지정된 uriOverride의 줄이 포함된 경우 큐에 큐 수준 라우팅이 있는 것입니다. 태스크 만들기 메서드를 선택하려면 큐 수준 라우팅이 있는 큐 섹션을 참조하세요.

    • 출력에 uriOverride 행이 포함되지 않거나 uriOverride 설명에 지정된 host가 표시되지 않으면 큐에 큐 수준 라우팅이 없는 것입니다. 태스크 만들기 메서드를 선택하려면 큐 수준 라우팅이 없는 큐 섹션을 참조하거나 큐 수준 라우팅 구성을 참조하세요.

큐 수준 라우팅이 있는 큐

큐 수준 라우팅이 있는 큐의 경우 태스크 생성 메서드는 태스크의 라우팅 요구사항에 따라 다릅니다.

  • 태스크에 큐 수준에서 지정된 것과 동일한 라우팅 요구사항이 있는 경우: BufferTask를 사용합니다. BufferTask 메서드로 태스크를 만드는 방법을 알아보세요.
  • 태스크에 큐 수준에서 지정된 것과 다른 라우팅 요구사항이 있는 경우: 큐의 UriOverrideEnforceModeIF_NOT_EXISTS로 설정하여 큐 수준 라우팅이 없는 태스크(예:BufferTask 태스크)에 적용되지만 자체 라우팅 사양을 전달하는 태스크 라우팅을 따르도록 합니다. 그 다음 CreateTask를 사용합니다. 이 메서드를 사용하면 태스크의 개별 라우팅을 지정할 수 있습니다. CreateTask 메서드로 태스크를 만드는 방법을 알아보세요.

큐 수준 라우팅이 없는 큐

큐 수준 라우팅이 없는 큐의 경우 CreateTask 메서드를 사용하여 태스크를 만들거나 큐 수준 라우팅을 구성합니다. CreateTask 메서드에는 큐 수준의 라우팅 정보가 아직 없는 큐에 필요한 태스크의 라우팅 지정이 포함되어 있습니다. CreateTask 메서드로 태스크를 만드는 방법을 알아보세요.

큐 수준 라우팅 이해

큐 수준 라우팅을 사용하면 태스크가 있는 큐를 기준으로 태스크의 기본 라우팅 정보를 지정할 수 있습니다. 자체 라우팅 정보가 없는 태스크에만 또는 모든 태스크에 적용할 기본 라우팅을 지정할 수 있습니다.

다음 경우에 큐 수준 라우팅을 선택합니다.

  • 태스크 객체를 생성하는 대신 표준 HTTP 요청으로 태스크를 만드는 경우
  • 타겟 서비스 앞에 큐를 버퍼로 사용하는 경우

타겟별 접근 방식

큐 수준 라우팅은 각 타겟 서비스에 하나의 큐를 사용하는 아키텍처에서 가장 잘 작동합니다. 이 모델을 사용하면 다음을 수행할 수 있습니다.

  • 타겟에 따라 태스크 관리(예: 타겟 서비스가 다운된 경우 태스크 그룹 리디렉션)
  • 큐의 모든 태스크를 동일한 타겟으로 전송
  • BufferTask 메서드를 사용하여 태스크 객체를 명시적으로 구성하지 않고 태스크 만들기

큐 수준 재정의 동작 사용 설정 및 사용 중지

큐 수준 라우팅을 구성한 후 큐의 UriOverrideEnforceMode를 설정하여 적용 시점을 결정할 수 있습니다.

  • IF_NOT_EXISTS: 큐 수준 라우팅은 태스크에 자체 라우팅 정보가 포함되지 않은 경우에만 적용됩니다. 큐가 태스크를 다른 타겟으로 디스패치할 수 있도록 하려면 이 설정을 사용합니다.
  • ALWAYS: 태스크에 고유한 라우팅 정보가 있더라도 큐 수준 라우팅은 항상 적용됩니다. 태스크 수준에서 설정된 모든 라우팅 정보는 큐 수준 라우팅으로 재정의됩니다. 지정된 큐의 태스크가 동일한 라우팅 정보를 사용하도록 하려면 이 설정을 사용합니다.