node-schedule — agendador de tarefas para TypeScript

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
```html

O que é node-schedule?

node-schedule é uma biblioteca popular para agendamento de tarefas atrasadas e recorrentes no ambiente Node.js. Ela é escrita em JavaScript, mas funciona perfeitamente com TypeScript graças às definições de tipos (DefinitelyTyped). A biblioteca permite executar funções em um horário específico, de acordo com uma agenda (sintaxe semelhante ao cron) ou em intervalos definidos.

Para que serve o node-schedule?

Em aplicações web modernas, é frequentemente necessário executar operações em segundo plano: limpeza de cache, envio de newsletters, backup de bancos de dados, atualização de dados de APIs externas ou geração de relatórios. O node-schedule resolve essa tarefa sem usar serviços externos (como o cron no Linux) — tudo funciona diretamente dentro da sua aplicação em TypeScript.

Instalação

Instale a biblioteca e os tipos via npm:

npm install node-schedulenpm install --save-dev @types/node-schedule

Depois disso, você pode importá-la em seu projeto TypeScript:

import * as schedule from 'node-schedule';

Principais funcionalidades

  • Agendamento por string cron — você define minutos, horas, dias, meses e dias da semana.
  • Agendamento para uma data específica — você passa um objeto Date ou uma string.
  • Repetição com intervalo — por exemplo, a cada 10 minutos.
  • Cancelamento de tarefa — é possível cancelar a execução agendada.
  • Verificação de tarefas ativas — o método scheduledJobs retorna todas as tarefas ativas.

Exemplo de código em TypeScript

import * as schedule from 'node-schedule';

// Tarefa que será executada a cada minuto (no 30º segundo)const job = schedule.scheduleJob('30 * * * * *', () => { console.log('Tarefa executada em:', new Date().toLocaleString());});

// Tarefa para uma data específicaconst date = new Date(Date.now() + 5000); // daqui a 5 segundosschedule.scheduleJob(date, () => { console.log('Tarefa única após 5 segundos');});

// Repetição a cada 10 segundosconst intervalJob = schedule.scheduleJob('*/10 * * * * *', () => { console.log('A cada 10 segundos');});

// Cancelamento da tarefa após 20 segundossetTimeout(() => { job.cancel(); console.log('Primeira tarefa cancelada');}, 20000);

// Verificação de tarefas ativasconsole.log('Tarefas ativas:', Object.keys(schedule.scheduledJobs));

Quando usar node-schedule

  • Quando você precisa executar tarefas agendadas dentro de uma aplicação Node.js sem um cron externo.
  • Para tarefas simples em segundo plano: limpeza de logs, envio de e-mails, atualização de cache.
  • Quando você precisa da flexibilidade da sintaxe cron (por exemplo, todo primeiro dia do mês às 3:00).
  • Se você não quiser depender do sistema operacional (portabilidade entre plataformas).

Não use node-schedule para sistemas distribuídos de alta carga — nesses casos, filas de tarefas (Bull, RabbitMQ) ou agendadores em nuvem (AWS CloudWatch, GCP Cloud Scheduler) são mais adequados.

A biblioteca é simples, leve e ideal para projetos de pequeno e médio porte em TypeScript.

```

Recommendations