Sobre o projeto
Agenda é uma biblioteca leve de agendamento de tarefas para Node.js, projetada para sobrecarga mínima e armazenamento persistente de tarefas. Ela fornece uma API baseada em promessas, suporta agendamento via cron ou intervalos legíveis por humanos, e inclui recursos como prioridade configurável, concorrência, tarefas repetidas e persistência de resultados de tarefas.
Os principais recursos incluem:
- **Sistema de backend plugável**: backends MongoDB (padrão), PostgreSQL e Redis são oficialmente suportados, com uma interface de backend personalizada para outros sistemas de armazenamento.
- **Notificações em tempo real**: canais de notificação opcionais (ex.: pub/sub do Redis, LISTEN/NOTIFY do PostgreSQL, Change Streams do MongoDB) permitem processamento imediato de tarefas sem polling.
- **Reescrita em TypeScript**: módulos ES totalmente tipados e modernos (Node.js 18+).
- **Nova tentativa automática com backoff**: estratégias internas de backoff constante, linear e exponencial com atrasos configuráveis, máximo de tentativas e jitter.
- **Debouncing de tarefas**: evita execuções duplicadas de tarefas.
- **Registro de tarefas persistente**: registro estruturado opcional de eventos do ciclo de vida da tarefa no banco de dados.
- **Modo fork**: execução de tarefas em sandbox para isolamento.
- **Monitoramento**: `getRunningStats()` para estatísticas da fila de tarefas.
- **Agenda-rest**: API REST autônoma opcional.
- **Agendash**: interface web opcional para gerenciar tarefas.
Agenda é adequada para tarefas de longa duração, suporta intervalos legíveis por humanos e pode ser usada em ambientes distribuídos com múltiplos processadores de tarefas. Também oferece limpeza automática de tarefas concluídas e tempos de retenção de bloqueio configuráveis.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.