node-cron — Agendador de tarefas para Node.js

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

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-cron

Apó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: schedule e validate.

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); // true

Quando 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.

Recommendations