Usa listas de extracción en Java

En esta página, se proporciona una descripción general de las listas de extracción en el entorno estándar de App Engine. En las listas de aplicaciones en cola, las tareas se entregan a un servicio trabajador a partir de la configuración de la cola. En las listas de extracción, el servicio trabajador debe pedirle tareas a la lista. La lista responde permitiéndole a ese trabajador acceso único para procesar la tarea durante un período específico, que se denomina asignación.

La aplicación descarga la tarea al servicio de lista de tareas en cola y, luego, el trabajador la asigna desde servicio de lista de tareas en cola

Con listas de extracción, también puedes agrupar las tareas mediante etiquetas y configurar tu trabajador para que extraiga varias tareas a la vez con una misma etiqueta. Este proceso se denomina agrupación en lotes.

Si un trabajador no puede procesar una tarea antes de que venza la asignación, puede renovarla o dejar que venza, momento a partir del cual otro trabajador puede adquirirla. Una vez que se completó el trabajo asociado con una tarea, el trabajador debe borrarlo.

El uso de listas de extracción requiere que tu código controle algunas funciones que están automatizadas en las listas de aplicaciones en cola:

Cómo escalar los trabajadores
Tu código necesita escalar el número de trabajadores según el volumen de procesamiento. Si tu código no admite escalamiento, corres el riesgo de desperdiciar recursos informáticos en caso de que no haya tareas que procesar. Por otra parte, también existe un riesgo de latencia si tienes demasiadas tareas que procesar.
Cómo borrar las tareas
Tu código también debe borrar las tareas de forma explícita luego del procesamiento. En las listas de aplicaciones en cola, App Engine borra las tareas por ti. Si tu trabajador no borra las tareas de la lista de extracción luego del procesamiento, otro trabajador volverá a procesar la tarea. Esto desperdicia recursos informáticos y presenta un riesgo de error si las tareas no son idempotentes.

Para crear listas de extracción en el entorno estándar de App Engine, establece una propiedad en un archivo de configuración llamado queue.xml.

Flujo de trabajo de lista de extracción

Los trabajadores que procesan tareas de las listas de extracción deben definirse dentro de un servicio que se ejecuta en el entorno estándar de App Engine.

El flujo de trabajo es el siguiente:

  1. Creas una lista de extracción mediante queue.xml.
  2. Creas tareas y las agregas a la lista.
  3. El trabajador que creaste asigna la tarea con TaskQueue.
  4. App Engine envía los datos de la tarea al trabajador en la respuesta de asignación.
  5. El trabajador procesa la tarea. Si la tarea no se ejecuta antes de que venza la asignación, puede modificar su duración. Si vence la asignación, la tarea estará disponible para que se asigne a otro trabajador.
  6. Luego de que la tarea se procese con éxito, el trabajador la borra.

Próximos pasos

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Entorno estándar de App Engine para Java 8