É possível criar tarefas HTTP usando o método BufferTask
ou o
CreateTask
. Esta página fornece orientações sobre como escolher entre os
dois métodos para criar tarefas HTTP.
O método BufferTask
permite criar uma tarefa enviando uma solicitação HTTP para o
fila. O método CreateTask
permite criar uma tarefa construindo o objeto
de tarefa. Na maioria dos casos de uso, a construção explícita do objeto de tarefa é
desnecessária. O melhor método para criar tarefas depende de a fila
tem roteamento no nível da fila.
Antes de começar
Verifique a lista de casos de uso a seguir para saber se algum se aplica a você:
- Você deseja criar tarefas usando a API RPC ou as bibliotecas de cliente (em vez de a API REST)
- Você quer criar tarefas como objetos de tarefa do App Engine, e não como os objetos de tarefa mais típicos para destinos HTTP genéricos, que podem ou não ser destinos do App Engine)
Se algum desses casos se aplicar a você, não será necessário escolher o método de criação da tarefa.
porque apenas um método (o CreateTask
) é compatível. Acessar diretamente
a documentação CreateTask
para seu tipo de tarefa:
Verificar se a fila tem roteamento no nível da fila
Execute o seguinte comando da CLI gcloud no terminal:
gcloud tasks queues describe QUEUE_NAME
Substitua
QUEUE_NAME
pelo nome da fila.Na saída, procure o campo
httpTarget
e verifique se ouriOverride
foi definido.Se a saída incluir uma linha para
uriOverride
com umhost
especificado, a fila tem roteamento no nível da fila. Para escolher o método de criação de tarefas, consulte a seção Filas com roteamento no nível da fila.Se a saída não incluir uma linha para
uriOverride
ou se o A descrição deuriOverride
não mostra umhost
especificado, sua fila mostra não tenham roteamento no nível da fila. Para escolher o método de criação da tarefa, consulte a seção Filas sem roteamento no nível de fila (ou configurar o roteamento no nível da fila).
Filas com roteamento no nível da fila
Para filas com roteamento em nível de fila, o método de criação de tarefa depende do requisitos de roteamento da tarefa:
- A tarefa tem os mesmos requisitos de roteamento especificados no nível da fila:
Use
BufferTask
. Saiba como criar tarefas com oBufferTask
. - A tarefa tem requisitos de roteamento diferentes daqueles especificados no nível da fila:
Defina a propriedade
UriOverrideEnforceMode
para
IF_NOT_EXISTS
para garantir que o roteamento no nível da fila se aplique às tarefas de qual roteamento não existe (por exemplo, tarefasBufferTask
), mas respeita o roteamento de tarefas com especificações próprias. Em seguida, useCreateTask
: Esse método permite especificar um roteamento individual para a tarefa. Saiba como criar tarefas com oCreateTask
.
Filas sem roteamento no nível da fila
Para filas sem roteamento no nível da fila, crie tarefas usando o CreateTask
(ou
configurar
roteamento no nível da fila). O método CreateTask
inclui a especificação do roteamento para
a tarefa, que é necessária para filas que ainda não têm roteamento
informações no nível da fila. Saiba como criar tarefas com o
CreateTask
.
Entender o roteamento no nível da fila
O roteamento no nível da fila permite especificar informações de roteamento padrão para tarefas com base na fila em que elas estão. Você pode especificar se quer que o roteamento padrão se aplicam somente a tarefas que não têm suas próprias informações de trajeto ou a todos tarefas.
Escolha o roteamento no nível da fila se quiser:
- Criar tarefas com solicitações HTTP padrão (em vez de construir a tarefa objeto)
- Usar uma fila como buffer na frente de um serviço de destino
A abordagem por destino
O roteamento no nível da fila funciona melhor com arquiteturas que usam uma fila para cada serviço de destino. Esse modelo permite que você:
- Gerenciar tarefas com base no objetivo (por exemplo, redirecionar um grupo de tarefas se o serviço de destino estiver inativo)
- Enviar todas as tarefas em uma fila para o mesmo destino
- Criar tarefas sem construir explicitamente o objeto da tarefa usando o
Método
BufferTask
Como ativar e desativar o comportamento de substituição no nível da fila
Depois de configurar o roteamento no nível da fila, você pode decidir quando ele é aplicado pela definindo a propriedade UriOverrideEnforceMode.
IF_NOT_EXISTS
: o roteamento no nível da fila só se aplica quando uma tarefa não e contêm as próprias informações de roteamento. Use essa configuração se quiser que a fila para enviar tarefas a diferentes destinos.ALWAYS
: o roteamento no nível da fila sempre é aplicado, mesmo que uma tarefa contenha as próprias informações de roteamento. Todas as informações de roteamento definidas no nível da tarefa são substituídos pelo roteamento no nível da fila. Use essa configuração se quiser exigem que as tarefas em uma determinada fila usem as mesmas informações de roteamento.