Sobre el proyecto
Agenda es una biblioteca ligera de programación de trabajos para Node.js, diseñada para un gasto general mínimo y un almacenamiento persistente de trabajos. Proporciona una API basada en promesas, admite programación mediante cron o intervalos legibles para humanos, e incluye funciones como prioridad configurable, concurrencia, trabajos repetidos y persistencia de resultados de trabajos.
Las características clave incluyen:
- **Sistema de backend conectable**: Se admiten oficialmente los backends de MongoDB (predeterminado), PostgreSQL y Redis, con una interfaz de backend personalizada para otros sistemas de almacenamiento.
- **Notificaciones en tiempo real**: Los canales de notificación opcionales (por ejemplo, Redis pub/sub, LISTEN/NOTIFY de PostgreSQL, Change Streams de MongoDB) permiten el procesamiento inmediato de trabajos sin sondeo.
- **Reescritura en TypeScript**: Módulos ES modernos y completamente tipados (Node.js 18+).
- **Reintento automático con retroceso**: Estrategias integradas de retroceso constante, lineal y exponencial con retrasos configurables, reintentos máximos y variación aleatoria.
- **Debouncing de trabajos**: Evita ejecuciones duplicadas de trabajos.
- **Registro persistente de trabajos**: Registro estructurado opcional de eventos del ciclo de vida de los trabajos en la base de datos.
- **Modo fork**: Ejecución de trabajos en sandbox para aislamiento.
- **Monitorización**: `getRunningStats()` para estadísticas de la cola de trabajos.
- **Agenda-rest**: API REST independiente opcional.
- **Agendash**: Interfaz web opcional para gestionar trabajos.
Agenda es adecuada para trabajos de larga duración, admite intervalos legibles para humanos y se puede usar en entornos distribuidos con múltiples procesadores de trabajos. También ofrece limpieza automática de trabajos completados y duraciones de bloqueo configurables.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.