Node.js: Tarefas cron

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

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

A Stackhero disponibiliza um ambiente Node.js cloud pronto a usar, pensado para acelerar o seu desenvolvimento:

  • Implemente em produção em segundos com um simples git push. Não necessita de ferramentas adicionais nem de configurações manuais.
  • Utilize o seu próprio domínio e beneficie de certificados HTTPS automáticos, garantindo a segurança da sua aplicação sem configurações extra.
  • Backups automáticos, atualizações com um clique e preços previsíveis permitem-lhe focar-se nas funcionalidades, enquanto a Stackhero gere a infraestrutura por si.
  • Baseado em infraestrutura privada e dedicada para garantir desempenho consistente e elevada segurança.

Poupe tempo e reduza a complexidade operacional: pode ter a sua aplicação a funcionar em Node.js cloud hosting da Stackhero em apenas alguns minutos.

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.