Elige el método de creación de tareas

Puedes crear tareas HTTP con los métodos BufferTask (Vista previa) o CreateTask. En esta página, se proporciona orientación sobre cómo elegir entre los dos métodos para crear tareas de HTTP.

El método BufferTask (Vista previa) te permite crear una tarea mediante el envío de 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 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 de 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 uno (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

  1. Ejecuta el siguiente comando de gcloud CLI en tu terminal:

    gcloud beta tasks queues describe QUEUE_NAME

    Reemplaza QUEUE_NAME por el nombre de la cola.

  2. En el resultado, busca el campo httpTarget y verifica si se configuró uriOverride.

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 especificaron en el nivel de cola: Usa BufferTask (Vista previa). Aprende a crear tareas con el método BufferTask.
  • La tarea tiene requisitos de enrutamiento diferentes de los especificados a nivel de la 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, tareas de BufferTask), pero respeta el enrutamiento de las tareas que tienen sus propias especificaciones de enrutamiento. Luego, usa CreateTask. Este método te permite especificar el enrutamiento individual para la tarea. Aprende a crear tareas con el método CreateTask.

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 la cola. Aprende a crear tareas con el método CreateTask.

Información sobre el enrutamiento a nivel de cola

El enrutamiento a nivel de la 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 hacer lo siguiente:

  • Crear tareas con solicitudes HTTP estándar (en lugar de construir el objeto de tarea)
  • Usa una cola como un 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 en función de su 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
  • Crea tareas sin construir explícitamente el objeto de tarea (mediante el método BufferTask que se encuentra en Preview).

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 solo se aplica cuando una tarea no contiene su propia información de enrutamiento. Usa esta configuración si quieres que la cola pueda enviar tareas a diferentes destinos.
  • ALWAYS: El enrutamiento a nivel de la cola siempre se aplica, incluso si una tarea contiene su propia información de enrutamiento. El enrutamiento a nivel de cola anula cualquier información de enrutamiento que se establezca a nivel de la tarea. Usa esta configuración si deseas que las tareas de una cola determinada usen la misma información de enrutamiento.