Escolha o método de criação de tarefas

Pode criar tarefas HTTP através do método BufferTask ou do método CreateTask. Esta página fornece orientações sobre como escolher entre os dois métodos de criação de tarefas HTTP.

O método BufferTask permite-lhe criar uma tarefa enviando um pedido HTTP para a fila. O método CreateTask permite-lhe criar uma tarefa construindo o objeto task. Para a maioria dos exemplos de utilização, a criação explícita do objeto de tarefa é desnecessária. O melhor método para criar tarefas depende de a fila ter encaminhamento ao nível da fila.

Antes de começar

Consulte a seguinte lista de exemplos de utilização para ver se algum se aplica a si:

  • Quer criar tarefas através da API RPC ou das bibliotecas cliente (em vez da API REST)
  • Quer criar tarefas como objetos de tarefas do App Engine (em vez de objetos de tarefas mais típicos para destinos HTTP genéricos que podem ou não ser destinos do App Engine)

Se alguma destas situações se aplicar a si, não precisa de escolher o método de criação de tarefas, porque apenas um método (o método CreateTask) é suportado. Aceda diretamente à CreateTask documentação para o seu tipo de tarefa:

Verifique se a fila tem encaminhamento ao nível da fila

  1. Execute o comando gcloud tasks queues describe no seu terminal:

    gcloud tasks queues describe QUEUE_NAME \
        --location=LOCATION

    Substitua o seguinte:

    • QUEUE_NAME: o nome da fila.
    • LOCATION: a região onde a sua fila está localizada. Se não for especificado e existir uma app associada, é usada a localização da app do App Engine do seu projeto.
  2. Na saída, procure o campo httpTarget e verifique se o campo uriOverride foi definido.

Filas com encaminhamento ao nível da fila

Para filas com encaminhamento ao nível da fila, o método de criação de tarefas depende dos requisitos de encaminhamento da tarefa:

  • A tarefa tem os mesmos requisitos de encaminhamento especificados ao nível da fila: use BufferTask. Saiba como criar tarefas com o método BufferTask.
  • A tarefa tem requisitos de encaminhamento diferentes dos especificados ao nível da fila: defina o UriOverrideEnforceMode da fila como IF_NOT_EXISTS para garantir que o encaminhamento ao nível da fila se aplica a tarefas para as quais o encaminhamento não existe (por exemplo, tarefas BufferTask), mas respeita o encaminhamento de tarefas que têm as suas próprias especificações de encaminhamento. Em seguida, use CreateTask. Este método permite-lhe especificar o encaminhamento individual da tarefa. Saiba como criar tarefas com o método CreateTask.

Filas sem encaminhamento ao nível da fila

Para filas sem encaminhamento ao nível da fila, crie tarefas através do método CreateTask (ou configure o encaminhamento ao nível da fila). O método CreateTask inclui a especificação do encaminhamento para a tarefa, o que é necessário para filas que ainda não tenham informações de encaminhamento ao nível da fila. Saiba como criar tarefas com o método CreateTask.

Compreenda o encaminhamento ao nível da fila

O encaminhamento ao nível da fila permite-lhe especificar informações de encaminhamento predefinidas para tarefas com base na fila em que se encontram. Pode especificar se quer que o encaminhamento predefinido se aplique apenas a tarefas que não tenham as suas próprias informações de encaminhamento ou a todas as tarefas.

Escolha o encaminhamento ao nível da fila se quiser:

  • Criar tarefas com pedidos HTTP padrão (em vez de criar o objeto task)
  • Use uma fila como um buffer à frente de um serviço de destino

A abordagem por alvo

O encaminhamento ao nível da fila funciona melhor com arquiteturas que usam uma fila para cada serviço de destino. Este modelo permite-lhe:

  • Gerir tarefas com base no respetivo destino (por exemplo, redirecionar um grupo de tarefas se o serviço de destino estiver inativo)
  • Enviar todas as tarefas numa fila para o mesmo destino
  • Crie tarefas sem construir explicitamente o objeto de tarefa através do método BufferTask

Ativar e desativar o comportamento de substituição ao nível da fila

Depois de configurar o encaminhamento ao nível da fila, pode decidir quando é aplicado definindo o UriOverrideEnforceMode da fila.

  • IF_NOT_EXISTS: o planeamento de trajetos ao nível da fila aplica-se apenas quando uma tarefa não contém as suas próprias informações de planeamento de trajetos. Use esta definição se quiser que a fila possa enviar tarefas para diferentes destinos.
  • ALWAYS: O encaminhamento ao nível da fila aplica-se sempre, mesmo que uma tarefa contenha as suas próprias informações de encaminhamento. Quaisquer informações de encaminhamento definidas ao nível da tarefa são substituídas pelo encaminhamento ao nível da fila. Use esta definição se quiser que as tarefas numa determinada fila usem as mesmas informações de encaminhamento.