O que é node-cron?
node-cron é uma biblioteca leve para Node.js que permite executar funções JavaScript em um agendamento, usando a sintaxe de expressões cron dos sistemas UNIX. Ela é ideal para automatizar tarefas rotineiras: limpeza de cache, envio de newsletters, backup de bancos de dados ou monitoramento de servidor.
Para que serve um agendador de tarefas?
Em aplicações web, muitas vezes é necessário executar código em um horário específico, e não apenas sob demanda do usuário. Em vez de usar serviços externos (como cron no servidor), o node-cron funciona diretamente dentro do seu processo Node.js. Isso simplifica a implantação, não requer configuração de um agendador de sistema e é ideal para aplicações conteinerizadas (Docker, Kubernetes).
Instalação
A instalação via npm é feita com um único comando:
npm install node-cronApós a instalação, a biblioteca está pronta para uso — nenhuma dependência adicional é necessária.
Funcionalidades principais
- Agendamento flexível — suporte a padrões cron padrão (minutos, horas, dias, meses, dias da semana).
- Iniciar e parar — cada tarefa pode ser iniciada ou interrompida sob demanda.
- Tratamento de erros — é possível definir um callback para registrar erros sem quebrar a aplicação.
- Sintaxe simples — apenas dois métodos:
scheduleevalidate.
Exemplo de código em JavaScript (Node.js)
Vamos criar uma tarefa que exibe a hora atual no console a cada minuto:
const cron = require('node-cron');
// Tarefa executada a cada minuto: '* * * * *'
cron.schedule('* * * * *', () => {
console.log('Tarefa executada:', new Date().toLocaleString());
});
console.log('Agendador iniciado. Pressione Ctrl+C para sair.');Um exemplo mais complexo — enviar um relatório todos os dias às 8h da manhã:
const cron = require('node-cron');
cron.schedule('0 8 * * *', () => {
console.log('Enviando relatório diário...');
// Aqui você chama a função de envio de email
}, {
scheduled: true,
timezone: 'Europe/Moscow'
});Validação da expressão cron:
const isValid = cron.validate('*/5 * * * *');
console.log(isValid); // trueQuando usar node-cron?
- Automação de backups — criar um dump do banco de dados todas as noites.
- Limpeza periódica — remover sessões expiradas ou arquivos temporários.
- Monitoramento — verificar a disponibilidade de serviços e enviar alertas.
- Newsletters — enviar emails agendados (por exemplo, resumos).
- Atualização de cache — reconstruir o cache em horários de baixo pico.
A biblioteca node-cron é adequada para projetos de qualquer tamanho — desde scripts simples até arquiteturas de microsserviços. Ela não requer dependências externas e funciona de forma estável mesmo com longos períodos de uptime.
Também na biblioteca
Cliente Elasticsearch para Swift (iOS/macOS) — guia completo
Framework CLI para JavaScript (Node.js): Commander.js – criação de aplicações de console
Internacionalização (i18n) em Rust: melhores bibliotecas e práticas
Testes em JavaScript (Node.js): frameworks e ferramentas