É possível criar tarefas HTTP usando o método BufferTask
(Preview) ou CreateTask
. Esta
página fornece orientações sobre como escolher entre os dois métodos para criar
tarefas HTTP.
O método BufferTask
(Preview) permite
criar uma tarefa enviando uma solicitação HTTP para a fila. O método CreateTask
permite criar uma tarefa construindo o objeto da tarefa. Na maioria dos casos de uso,
não é necessário construir explicitamente o objeto de tarefa. O melhor método para
criar tarefas depende do roteamento no nível da fila.
Verificar se a fila tem roteamento no nível da fila
Execute o seguinte comando da CLI gcloud no seu terminal:
gcloud beta 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, sua fila terá roteamento no nível da fila. Para escolher o método de criação da tarefa, 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 a descrição deuriOverride
não mostrar umhost
especificado, sua fila não terá roteamento no nível da fila. Para escolher o método de criação de tarefas, consulte a seção Filas sem roteamento no nível da fila (ou configurar o roteamento no nível da fila).
Filas com roteamento no nível da fila
Para filas com roteamento no nível da fila, o método de criação da tarefa depende dos requisitos de roteamento da tarefa:
- A tarefa tem os mesmos requisitos de roteamento especificados no nível da fila:
use
BufferTask
(Prévia). Aprenda a criar tarefas com o métodoBufferTask
. - A tarefa tem requisitos de roteamento diferentes daqueles especificados no nível da fila:
defina o
UriOverrideEnforceMode da fila
como
IF_NOT_EXISTS
para garantir que o roteamento no nível da fila se aplique a tarefas em que ele não existe (por exemplo,BufferTask
), mas respeite o roteamento de tarefas com especificações próprias. Em seguida, useCreateTask
. Esse método permite especificar um roteamento individual para a tarefa. Aprenda a criar tarefas com o métodoCreateTask
.
Filas sem roteamento no nível da fila
Para filas sem roteamento no nível da fila, crie tarefas usando o método
CreateTask
(ou
configure
o roteamento no nível da fila). O método CreateTask
inclui a especificação do roteamento para a tarefa, o que é necessário para filas que ainda não têm informações de roteamento no nível da fila. Aprenda a criar tarefas com o
método
CreateTask
.
Entenda 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 estão. É possível especificar se você quer que o roteamento padrão seja aplicado apenas a tarefas que não têm as próprias informações de roteamento ou a todas as tarefas.
Escolha o roteamento no nível da fila se você quiser:
- Criar tarefas com solicitações HTTP padrão (em vez de construir o objeto da tarefa)
- Usar uma fila como buffer na frente de um serviço de destino
A abordagem por público-alvo
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 destino (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 de tarefa usando o
método
BufferTask
que está em Visualização.
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 será aplicado configurando o UriOverrideEnforceMode da fila.
IF_NOT_EXISTS
: o roteamento no nível da fila se aplica somente quando uma tarefa não contém as próprias informações de roteamento. Use essa configuração se quiser que a fila possa enviar tarefas para destinos diferentes.ALWAYS
: o roteamento no nível da fila sempre se aplica, 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ídas pelo roteamento no nível da fila. Use essa configuração se quiser exigir que tarefas em uma determinada fila usem as mesmas informações de roteamento.