Criar filas do Cloud Tasks

Esta página descreve como criar filas do Cloud Tasks. Quando as tarefas são adicionadas a uma fila, ela as despacha e garante que elas sejam processadas de forma confiável por um serviço, também conhecido como worker.

Observe o seguinte:

  • Os nomes das filas consistem em três partes: um ID do projeto, um local e um ID da fila. Você precisa ter um projeto do Google Cloud que forneça o ID do projeto.

  • Se você estiver usando tarefas de destino do App Engine, também precisará ter um aplicativo do App Engine localizado em uma região específica e em que a fila e os manipuladores são executados. Anote a região ao adicionar o app.

  • O uso de tarefas de destino HTTP não exige um app do App Engine. Você seleciona um local Google Cloud ao criar a fila.

Crie uma fila

É possível criar uma fila das seguintes maneiras:

  • No console do Google Cloud
  • Usando a CLI do Google Cloud no terminal ou no Cloud Shell
  • Enviando uma solicitação direta para a API Cloud Tasks
  1. No console do Google Cloud, acesse a página Cloud Tasks > Queues.

    Acessar filas

  2. Clique em Criar fila.

  3. Digite um nome de fila, por exemplo, my-queue.

  4. Na lista Região, selecione um local com suporte em que a fila será executada, por exemplo, asia-south1.

    Se a sua organização restringir a localização de recursos e você quiser criar a fila em us-central1 ou us-central2, a política da organização precisará permitir a criação de filas em us-central1 e us-central2, mesmo que você precise de uma fila em apenas uma dessas regiões.

  5. Também é possível configurar a fila.

  6. Clique em Criar.

Use o comando gcloud tasks queues create para criar a fila:

  gcloud tasks queues create QUEUE_ID \
      --location=LOCATION

Substitua:

  • QUEUE_ID: o identificador atribuído à sua fila, por exemplo, my-queue.

  • LOCATION: uma região com suporte em que a fila será executada. Por exemplo, asia-south1.

    Se a sua organização restringir a localização de recursos e você quiser criar a fila em us-central1 ou us-central2, a política da organização precisará permitir a criação de filas em us-central1 e us-central2, mesmo que você precise apenas de uma fila em uma dessas regiões.

Outras flags para o comando da CLI gcloud permitem configurar limites de taxa, opções de nova tentativa, tipos de fila e muito mais.

Para criar uma fila, use o método projects.locations.queues.create.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: é seu ID do projeto no Google Cloud.
  • LOCATION: uma região com suporte em que a fila será executada. Por exemplo, asia-south1.

    Se a sua organização restringir a localização de recursos e você quiser criar a fila em us-central1 ou us-central2, a política da organização precisará permitir a criação de filas em us-central1 e us-central2, mesmo que você só precise de uma fila em uma dessas regiões.

  • QUEUE_ID: o identificador atribuído à sua fila, por exemplo, my-queue.
Outras propriedades configuráveis para o recurso Queue incluem limites de taxa, opções de repetição, tipos de fila e muito mais.

Corpo JSON da solicitação:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID"
}

Para enviar a solicitação, expanda uma destas opções:

Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

cat > request.json << 'EOF'
{
  "name": "projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID"
}
EOF

Depois execute o comando a seguir para enviar a solicitação REST:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://cloudtasks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/queues"

Salve o corpo da solicitação em um arquivo chamado request.json. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:

@'
{
  "name": "projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID"
}
'@  | Out-File -FilePath request.json -Encoding utf8

Depois execute o comando a seguir para enviar a solicitação REST:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://cloudtasks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/queues" | Select-Object -Expand Content

Copie o corpo da solicitação e abra a página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Cole o corpo da solicitação nessa ferramenta, preencha todos os outros campos obrigatórios e clique em Executar.

Se houver êxito, o corpo da resposta conterá uma instância de Queue:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID",
  "rateLimits": {
    "maxDispatchesPerSecond": 500,
    "maxBurstSize": 100,
    "maxConcurrentDispatches": 1000
  },
  "retryConfig": {
    "maxAttempts": 100,
    "minBackoff": "0.100s",
    "maxBackoff": "3600s",
    "maxDoublings": 16
  },
  "state": "RUNNING"
}

Pode demorar alguns minutos para que uma fila recém-criada esteja disponível.

Descreva sua fila

Você pode confirmar que a fila foi criada da seguinte maneira:

  • No console do Google Cloud
  • Usando a CLI gcloud no terminal ou no Cloud Shell
  • Enviando uma solicitação direta para a API Cloud Tasks

  1. No console do Google Cloud, acesse a página Cloud Tasks > Queues.

    Acessar filas

    Uma marca de seleção verde indica que a fila está em execução.

  2. Para mais detalhes, clique no nome da fila e na guia Configuração.

Use o comando gcloud tasks queues describe para verificar se a fila foi criada:

gcloud tasks queues describe QUEUE_ID \
    --location=LOCATION

Substitua:

  • QUEUE_ID: o ID da fila (nome abreviado)
  • LOCATION: o local da fila

A saída será semelhante a esta:

name: projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID
rateLimits:
  maxBurstSize: 100
  maxConcurrentDispatches: 1000
  maxDispatchesPerSecond: 500.0
retryConfig:
  maxAttempts: 100
  maxBackoff: 3600s
  maxDoublings: 16
  minBackoff: 0.100s
state: RUNNING

Para recuperar uma fila, use o método projects.locations.queues.get.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: é seu ID do projeto no Google Cloud.
  • LOCATION: a região em que a fila é implantada. Por exemplo, us-central1.
  • QUEUE_ID: o ID curto da fila. Por exemplo, my-queue.

Para enviar a solicitação, expanda uma destas opções:

execute o seguinte comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://cloudtasks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID"

execute o seguinte comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://cloudtasks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID" | Select-Object -Expand Content

Abra a página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Preencha todos os campos obrigatórios e clique em Executar.

Se houver êxito, o corpo da resposta conterá uma instância de Queue:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID",
  "rateLimits": {
    "maxDispatchesPerSecond": 500,
    "maxBurstSize": 100,
    "maxConcurrentDispatches": 1000
  },
  "retryConfig": {
    "maxAttempts": 100,
    "minBackoff": "0.100s",
    "maxBackoff": "3600s",
    "maxDoublings": 16
  },
  "state": "RUNNING"
}

Resolver problemas na criação de uma fila

Se você não encontrar a saída esperada, tente o seguinte:

  • Aguarde pelo menos um minuto para que a fila seja inicializada.
  • Verifique se já há uma fila com o mesmo código. É possível conferir as filas no projeto usando o comando gcloud tasks queues list:

    gcloud tasks queues list \
        --location=LOCATION

    Para pesquisar vários locais, você precisa fazer várias solicitações.

  • Verifique se você atingiu a cota da fila:

    1. No console do Google Cloud, acesse a página Detalhes da API/serviço da API Cloud Tasks .

      Acessar os detalhes da API/serviço

    2. Clique na guia Cotas e limites do sistema.

    3. Para aumentar uma cota, clique no ícone de elipse > Editar cota.

      Para mais informações, consulte Solicitar um valor de cota maior.

  • Execute os comandos novamente para criar a fila e garantir que cada etapa seja concluída corretamente.

A seguir