Puedes crear tareas HTTP con los métodos BufferTask
o CreateTask
. En esta página, se proporciona orientación sobre cómo elegir entre los dos métodos para crear tareas HTTP.
El método BufferTask
te permite crear una tarea enviando una solicitud HTTP a la cola. El método CreateTask
te permite crear una tarea construyendo el objeto de tarea. En la mayoría de los casos de uso, no es necesario construir explícitamente el objeto de tarea. El mejor método para crear tareas depende de si la cola tiene enrutamiento a nivel de la cola.
Antes de comenzar
Consulta la siguiente lista de casos de uso para ver si alguno se aplica a tu caso:
- Deseas crear tareas con la API de RPC o las bibliotecas cliente (en lugar de la API de REST).
- Deseas crear tareas como objetos de tareas de App Engine (en lugar de objetos de tarea más típicos para destinos HTTP genéricos que pueden o no ser objetivos de App Engine).
Si alguno de estos se aplica a tu caso, no necesitas elegir el método de creación de tareas, ya que solo se admite un método (el método CreateTask
). Ve directamente a la documentación de CreateTask
según tu tipo de tarea:
Verifica si la 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 verifica si se configuróuriOverride
.Si el resultado incluye una línea para
uriOverride
con unhost
especificado, la 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 cola.Si el resultado no incluye una línea para
uriOverride
o si la descripciónuriOverride
no muestra unhost
especificado, la 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 configura el enrutamiento a nivel de cola).
Colas con enrutamiento a nivel de cola
Para las colas con enrutamiento a nivel de 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 a los especificados en el nivel de cola:
Establece el UriOverrideEnforceMode de la cola en
IF_NOT_EXISTS
para asegurarte de que el enrutamiento a nivel de la cola se aplique a tareas para las que no existe enrutamiento (por ejemplo, tareasBufferTask
), pero que respete el enrutamiento de las tareas que tienen sus propias especificaciones de enrutamiento. Luego, usaCreateTask
. Este método te permite especificar el enrutamiento individual para 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 con el método CreateTask
(o configure el enrutamiento a nivel de cola). El método CreateTask
incluye especificar el enrutamiento de la tarea, lo cual es necesario para las colas que aún no tienen información de enrutamiento a nivel de cola. Aprende a crear tareas con el método CreateTask
.
Información sobre el enrutamiento a nivel de cola
El enrutamiento a nivel de cola te permite especificar la información de enrutamiento predeterminada para las tareas según la cola en la que se encuentren. 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 deseas:
- Crear tareas con solicitudes HTTP estándar (en lugar de construir el objeto de tarea)
- Usa una cola como búfer frente a un servicio de destino
El enfoque por objetivo
El enrutamiento a nivel de cola funciona mejor con arquitecturas que usan una cola para cada servicio de destino. Este modelo te permite hacer lo siguiente:
- Administrar tareas según el destino (por ejemplo, redireccionar un grupo de tareas si el servicio de destino no funciona)
- Envía 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 la cola, puedes decidir cuándo se aplicará mediante la configuración del UriOverrideEnforceMode de la cola.
IF_NOT_EXISTS
: El enrutamiento a nivel de cola se aplica solo cuando una tarea no contiene su propia información de enrutamiento. Usa este parámetro de configuración si quieres que la cola pueda enviar tareas a diferentes destinos.ALWAYS
: El enrutamiento a nivel de cola siempre se aplica, incluso si una tarea contiene su propia información de enrutamiento. El enrutamiento a nivel de cola anula toda información de enrutamiento establecida a nivel de tarea. Usa esta configuración si deseas que las tareas de una cola determinada usen la misma información de enrutamiento.