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.