Elige el método de creación de tareas

Puedes crear tareas HTTP con el método BufferTask o el método 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 enviando una solicitud HTTP a 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

  1. Ejecuta el comando gcloud tasks queues describe en la terminal:

    gcloud tasks queues describe QUEUE_NAME \
        --location=LOCATION

    Reemplaza lo siguiente:

    • QUEUE_NAME: Es el nombre de la fila.
    • LOCATION: Es la región en la que se encuentra la cola. Si no se especifica y hay una app asociada, se usa la ubicación de la app de App Engine de tu proyecto.
  2. En el resultado, busca el campo httpTarget y comprueba si se configuró uriOverride.

Colas con enrutamiento a nivel de la 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étodo BufferTask.
  • 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, tareas BufferTask), pero respeta el enrutamiento de las tareas que llevan 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 la cola

Para las colas sin enrutamiento a nivel de la cola, crea tareas con el método CreateTask (o configura el 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 el método 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:

  • Crea tareas con solicitudes HTTP estándar (en lugar de crear 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 la 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 su objetivo (por ejemplo, redireccionar un grupo de tareas si el servicio de destino está inactivo)
  • Envía todas las tareas de una cola al mismo destino
  • Crea tareas sin construir explícitamente el objeto de tarea con el método BufferTask.

Cómo activar y desactivar 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 aplica configurando el UriOverrideEnforceMode de la cola.

  • IF_NOT_EXISTS: La planificación a nivel de la cola se aplica solo 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 la cola siempre se aplica, incluso si una tarea contiene su propia información de enrutamiento. El enrutamiento a nivel de la cola anula cualquier información de enrutamiento establecida a nivel de la tarea. Usa este parámetro de configuración si deseas exigir que las tareas de una cola determinada usen la misma información de enrutamiento.