Node.js: Tarefas cron

Automatize tarefas de forma eficaz em Node.js com tarefas cron

👋 Bem-vindo à documentação do Stackhero!

A Stackhero oferece uma solução Node.js cloud pronta a usar que proporciona uma série de benefícios, incluindo:

  • Implemente a sua aplicação em segundos com um simples git push.
  • Utilize o seu próprio nome de domínio e beneficie da configuração automática de certificados HTTPS para uma segurança reforçada.
  • Desfrute de tranquilidade com backups automáticos, atualizações com um clique, e preços simples, transparentes e previsíveis.
  • Obtenha desempenho ótimo e segurança robusta graças a uma VM privada e dedicada.

Poupe tempo e simplifique a sua vida: só leva 5 minutos para experimentar a solução de hospedagem cloud Node.js da Stackhero!

Ao desenvolver aplicações Node.js, automatizar tarefas repetitivas como enviar emails agendados, limpar dados expirados ou realizar manutenção regular pode melhorar significativamente tanto a eficiência quanto a escalabilidade. O módulo cron, disponível no npm (módulo cron no npm), oferece uma maneira simples e eficaz de implementar essa automação.

Nota: Embora o módulo npm node-cron seja outra ferramenta disponível para tarefas cron, este guia foca especificamente no módulo cron e na sua implementação.

Para começar a usar o módulo cron no seu projeto, inclua-o como uma dependência executando o seguinte comando:

npm install cron

Uma vez que o módulo esteja instalado, pode começar a agendar e gerir tarefas cron na sua aplicação. Aqui está um exemplo prático:

const cron = require('cron');
const cronJobs = [];

// Lidar graciosamente com o encerramento da aplicação parando todas as tarefas cron agendadas.
// Ao implementar novo código ou encerrar a aplicação, um sinal de terminação (SIGTERM) é enviado.
// Isso garante que a aplicação pare todas as tarefas cron em execução antes de sair.
process.on('SIGTERM', () => {
  cronJobs.forEach(cronJob => cronJob.stop());
});

// Agendar uma tarefa cron para executar a cada segundo.
cronJobs.push(
  new cron.CronJob(
    '* * * * * *', // Agendamento: A cada segundo
    () => {
      console.log("Esta mensagem aparecerá a cada segundo.");
    },
    null,
    true
  )
);

// Agendar uma tarefa cron para executar a cada minuto.
cronJobs.push(
  new cron.CronJob(
    '0 */1 * * * *', // Agendamento: A cada minuto
    () => {
      console.log("Esta mensagem aparecerá a cada minuto.");
    },
    null,
    true
  )
);

O módulo cron utiliza a sintaxe padrão UNIX cron para definir agendamentos. Aqui estão alguns exemplos comuns:

  • A cada segundo: * * * * * *
  • A cada 30 segundos: */30 * * * * *
  • A cada 10 minutos: 0 */10 * * * *
  • A cada 2 horas: 0 0 */2 * * *

Agora está preparado para automatizar tarefas usando o módulo cron nas suas aplicações Node.js. Para mais informações detalhadas e exemplos, visite o repositório oficial do módulo cron e consulte o diretório de exemplos.