Diseñar un sistema de tareas en segundo plano con colas y workers

Diseña colas y workers para tareas asíncronas: elección de tecnología, jobs idempotentes, reintentos por tipo de error, prioridades, límites de concurrencia, outbox y monitorización. Pensado para ChatGPT, Claude, Gemini y Microsoft Copilot. Incluye 4 variables personalizables y se copia gratis en un clic.

Avanzado · Texto · Pendiente de revisión editorial

Prompt

Actúa como arquitecto de software con experiencia en procesamiento asíncrono y sistemas de colas.

Quiero sacar de la petición web el trabajo pesado o lento de mi aplicación.
- Tareas a mover a segundo plano: {{tareas}}
- Volumen y picos esperados: {{volumen}}
- Stack actual: {{stack}}
- Infraestructura y restricciones: {{infraestructura}}

Entregables:
1. Clasificación de cada tarea: urgencia, duración típica, si llama a servicios externos, si puede repetirse sin efectos secundarios y qué pasa si se pierde.
2. Opciones de tecnología (cola en la base de datos, Redis o un broker de mensajes) con ventajas, inconvenientes y coste operativo para mi caso, sin cifras de rendimiento inventadas. Recomendación justificada.
3. Diseño de los jobs: carga útil mínima (identificadores, no objetos completos), idempotencia con claves o comprobaciones de estado, timeouts y versionado del formato del mensaje.
4. Política de reintentos por tipo de error (transitorio, límite de tasa del tercero, error de datos, error de programación), backoff con jitter y cola de mensajes fallidos con un procedimiento para revisarlos y reprocesarlos.
5. Colas separadas y prioridades, concurrencia por cola y límites de tasa para APIs externas.
6. Consistencia entre base de datos y cola: patrón outbox o encolado tras el commit, y por qué no encolar dentro de una transacción abierta.
7. Tareas programadas: cómo evitar ejecuciones duplicadas con varios workers.
8. Despliegues y apagado ordenado: qué ocurre con los jobs en curso.
9. Monitorización: métricas (profundidad de cola, antigüedad del job más viejo, tasa de errores, duración), alertas y paneles.
10. Plan de migración por fases desde la situación actual.

Restricciones:
- Si falta información sobre volumen, tolerancia a retrasos o infraestructura, pregúntame primero o márcalo como [COMPLETAR].
- Prefiere la opción más simple que cumpla los requisitos y explica cuándo convendría cambiar a otra.
- Incluye un diagrama en texto del flujo completo.

Cómo usarlo

  1. Enumera las tareas lentas actuales y cuánto tardan hoy en la petición.
  2. Indica qué infraestructura puedes operar de verdad (por ejemplo, si ya tienes Redis o solo una base de datos).
  3. Empieza moviendo una sola tarea, añade las métricas y después migra el resto.

Ejemplo de uso

Tareas: enviar emails, generar facturas en PDF, sincronizar pedidos con el ERP · 20 000 jobs al día con picos en rebajas · Stack: Laravel con MySQL · Un solo servidor y Redis disponible.

Resultado de ejemplo

1. Clasificación de tareas

TareaUrgenciaDuración típicaServicio externo¿Puede repetirse?Si se pierde…
Email transaccionalAlta (segundos)CortaSí (SMTP/API)No sin clave de idempotenciaEl cliente no recibe su confirmación
Factura PDFMedia (minutos)Media, uso de CPUNoSí, si se sobrescribe el mismo archivoSe regenera
Sincronización ERPMediaVariableSí, con límites de usoSolo comprobando el estadoDescuadre de pedidos

2. Recomendación

Colas de Laravel sobre Redis + Horizon. Ya tenéis Redis, no añade otra pieza que mantener y Horizon da paneles y reintentos sin montar nada más. Un broker dedicado solo compensaría si necesitarais varios consumidores independientes o garantías de entrega más estrictas.

5. Colas y concurrencia

  • emails — prioridad alta, varios workers.
  • facturas — pocos workers para no saturar la CPU del único servidor.
  • erp — 1–2 workers y RateLimited según el límite del ERP → [COMPLETAR].

Diagrama

Request → DB::transaction → outbox / afterCommit → Redis
       → Horizon (emails | facturas | erp) → reintentos con backoff → failed_jobs

Con un equipo de dos personas sin guardias, las alertas deben ir a un canal revisado en horario laboral, salvo «cola de emails parada», que merece aviso inmediato…

Datos clave

Categoría
Programación y desarrollo · Arquitectura de software
Tipo de resultado
Texto
Nivel
Avanzado
Pensado para
ChatGPT, Claude, Gemini y Microsoft Copilot
Verificado en
Pendiente de verificación editorial
Variables
Tareas en segundo plano, Volumen y picos, Stack actual y Infraestructura y restricciones
Idioma
Español
Precio
Gratis, sin registro
Actualizado
07/11/2026

Preguntas frecuentes

¿Qué es el patrón outbox y por qué se recomienda?

Consiste en guardar el mensaje en una tabla dentro de la misma transacción que los datos de negocio y publicarlo después. Evita que se encole un job de algo que no llegó a guardarse, o que se guarde algo sin su job.

¿Basta con una cola en la base de datos?

Para volúmenes moderados suele bastar y no añade infraestructura. Cuando la cola compite con las consultas de la aplicación o necesitas mucha concurrencia, conviene pasar a Redis o a un broker.

¿Para qué sirve este prompt?

Diseña colas y workers para tareas asíncronas: elección de tecnología, jobs idempotentes, reintentos por tipo de error, prioridades, límites de concurrencia, outbox y monitorización.

¿Con qué herramientas de IA funciona?

Está pensado para ChatGPT, Claude, Gemini y Microsoft Copilot. Todavía no lo hemos verificado en estas herramientas, por lo que los resultados pueden variar entre ellas.

¿Cómo personalizo el prompt?

Pulsa «Personalizar» y rellena las variables (Tareas en segundo plano, Volumen y picos, Stack actual y Infraestructura y restricciones). El texto se actualiza al instante y después puedes copiarlo con un clic. Los valores se guardan solo en tu navegador.

¿Necesito experiencia para usarlo?

Es de nivel avanzado: está pensado para personas con experiencia en el tema que sepan evaluar y ajustar el resultado.

¿Este prompt es gratis?

Sí. Todos los prompts de HomeCasa Prompts son gratuitos, sin registro ni suscripción. Puedes usarlos también en proyectos profesionales.

¿Puedo fiarme del resultado de la IA?

Úsalo como un borrador de calidad: revisa siempre datos, cifras y afirmaciones importantes antes de publicarlos o tomar decisiones.

Prompts relacionados