Elige el método de creación de tareas

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

  1. 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.

  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 especifican a nivel de la cola: usa BufferTask. Aprende a crear tareas con el método BufferTask.
  • 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, tareas BufferTask), pero que respete 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 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.