Puedes crear tareas HTTP con el método BufferTask
o
CreateTask
. En esta página, se proporciona orientación para elegir entre los
dos métodos para crear tareas HTTP.
El método BufferTask
te permite crear una tarea a través del envío de una solicitud HTTP al
en la fila. El método CreateTask
te permite crear una tarea mediante la construcción del objeto de tarea. En la mayoría de los casos de uso, no es necesario construir de forma explícita el objeto de tarea. El mejor método para crear tareas depende de si tu fila
tiene enrutamiento a nivel de la fila.
Antes de comenzar
Consulta la siguiente lista de casos de uso para ver si alguno se aplica a tu caso:
- Quieres crear tareas con la API de RPC o bibliotecas cliente (en lugar de la API de REST).
- Quieres crear tareas como objetos de tarea de App Engine (en lugar de los objetos de tareas más típicos para objetivos HTTP genéricos que pueden ser o no objetivos de App Engine).
Si alguna de estas opciones se aplica a tu caso, no es necesario que elijas el método de creación de tareas, ya que solo se admite uno (el método CreateTask
). Ve directamente a
la documentación de CreateTask
para tu tipo de tarea:
Verifica si tu cola tiene enrutamiento a nivel de la cola
Ejecuta el siguiente comando de gcloud CLI en tu terminal:
gcloud tasks queues describe QUEUE_NAME
Reemplaza
QUEUE_NAME
por el nombre de la cola.En el resultado, busca el campo
httpTarget
y comprueba si se configuróuriOverride
.Si el resultado incluye una línea para
uriOverride
con unhost
especificado, tu cola tiene enrutamiento a nivel de la cola. Para elegir el método de creación de tareas, consulta la sección Colas con enrutamiento a nivel de la cola.Si el resultado no incluye una línea para
uriOverride
o si la descripción deuriOverride
no muestra unhost
especificado, tu cola no tiene enrutamiento a nivel de la cola. Para elegir el método de creación de tareas, consulta la sección Colas sin enrutamiento a nivel de cola (o configurar el enrutamiento a nivel de la cola).
Colas con enrutamiento a nivel de cola
En el caso de las colas con enrutamiento a nivel de la cola, el método de creación de tareas depende de los requisitos de enrutamiento de la tarea:
- La tarea tiene los mismos requisitos de enrutamiento que se especifican a nivel de la cola: Usa
BufferTask
. Aprende a crear tareas con el métodoBufferTask
. - La tarea tiene requisitos de enrutamiento diferentes de los especificados a nivel de la cola:
Establece UriOverrideEnforceMode de la fila en
IF_NOT_EXISTS
para asegurarte de que el enrutamiento a nivel de la fila se aplique a las tareas para las que no existe el enrutamiento (por ejemplo, tareasBufferTask
), pero respeta el enrutamiento de las tareas que tienen sus propias especificaciones de enrutamiento. Luego, utilizaCreateTask
Este método te permite especificar el enrutamiento individual de la tarea. Aprende a crear tareas con el métodoCreateTask
.
Colas sin enrutamiento a nivel de cola
Para colas sin enrutamiento a nivel de cola, crea tareas mediante CreateTask
método (o
configurar
enrutamiento a nivel de la cola). El método CreateTask
incluye especificar el enrutamiento para la tarea, que es obligatorio para las colas que aún no tienen información de enrutamiento a nivel de la cola. Aprende a crear tareas con la
CreateTask
.
Comprende el enrutamiento a nivel de la cola
El enrutamiento a nivel de la cola te permite especificar información de enrutamiento predeterminada para las tareas según la cola en la que se encuentran. Puedes especificar si deseas que el enrutamiento predeterminado se aplique solo a las tareas que no tienen su propia información de enrutamiento o a todas las tareas.
Elige el enrutamiento a nivel de la cola si quieres hacer lo siguiente:
- Crear tareas con solicitudes HTTP estándar (en lugar de construirlas) objeto)
- Usa una cola como búfer frente a un servicio de destino
El enfoque por segmentación
El enrutamiento a nivel de cola funciona mejor con arquitecturas que usan una cola para cada una servicio de destino. Este modelo te permite hacer lo siguiente:
- Administrar tareas según su objetivo (por ejemplo, redireccionar un grupo de tareas si el servicio de destino está inactivo)
- Cómo enviar todas las tareas de una cola al mismo destino
- Crear tareas sin construir explícitamente el objeto de tarea con el
Método
BufferTask
Activa y desactiva el comportamiento de anulación a nivel de la cola
Una vez que configures el enrutamiento a nivel de cola, puedes decidir cuándo se aplicará configurar la fila UriOverrideEnforceMode.
IF_NOT_EXISTS
: La planificación a nivel de la cola solo se aplica cuando una tarea no contiene su propia información de planificación. Usa este parámetro de configuración si deseas que la fila pueda enviar tareas a diferentes destinos.ALWAYS
: El enrutamiento a nivel de cola siempre se aplica, incluso si una tarea contiene su tu propia información de enrutamiento. Toda información de enrutamiento establecida a nivel de tarea es anulada por el enrutamiento a nivel de la cola. Usa este parámetro de configuración si deseas exigir que las tareas de una cola determinada usen la misma información de enrutamiento.