effidevFlutter · Edge de Cloudflare · Optimización de costes en la nube
Español

Construcción de Pipelines de Tareas Asíncronas con Cloudflare Queues

Pipelines Asíncronos Serverless con Cloudflare Queues

Ejecutar tareas pesadas (como enviar correos o procesar imágenes) de forma síncrona en una API aumenta la latencia a varios segundos.

La mejor práctica es transferir esos trabajos a una cola de mensajes asíncrona (Cloudflare Queues) y responder inmediatamente con un HTTP 202 Accepted.

Resumen Clave

  • Reducción del 98% en Latencia: De 500ms a 12ms al responder de inmediato.
  • Desacoplamiento Productor-Consumidor: Los Workers de recepción y de procesamiento funcionan de forma independiente.
  • Dead Letter Queue (DLQ): Aisla los mensajes fallidos sin pérdida de datos.

Ejemplo en TypeScript

export interface Env {
  JOB_QUEUE: Queue;
}

export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    const body = await request.json();
    await env.JOB_QUEUE.send(body);
    return Response.json({ success: true }, { status: 202 });
  },

  async queue(batch: MessageBatch<any>, env: Env): Promise<void> {
    for (const msg of batch.messages) {
      try {
        console.log("Procesando tarea:", msg.body);
        msg.ack();
      } catch (err) {
        msg.retry({ delaySeconds: 10 });
      }
    }
  },
};

Conclusión

Cloudflare Queues elimina la latencia de respuesta en APIs y garantiza la ejecución confiable de tareas en segundo plano.