Projeto Soma Labs — Node-Cron no FollowUp

Mateus Nascimento Barbosa (mateusxis)
soma-labs
Published in
2 min readOct 5, 2018

Motivação

O projeto FollowUp é o link entre nós do Grupo Soma com os nossos fornecedores, diariamente um esquadrão gerencia e controla as produções que estão sendo faccionadas. Uma das tarefas é o envio de e-mail avisando sobre as produções recém liberadas. Para esta tarefa que vimos a necessidade de um gerenciador de tarefas. Utilizando o módulo node-cron para o envio de e-mail.

Sintaxe

Quando definimos cron.schedule("* * * * * *"

Cada asterisco representa um campo, abaixo sua organização:

 # ┌────────────── segundo (opcional)
# │ ┌──────────── minuto
# │ │ ┌────────── hora
# │ │ │ ┌──────── dia do mês
# │ │ │ │ ┌────── mês
# │ │ │ │ │ ┌──── dia da semana
# │ │ │ │ │ │
# │ │ │ │ │ │
# * * * * * *

Os valores aceitos por cada campo:

  • segundo: 0 a 59
  • minuto: 0 a 59
  • hora: 0–23
  • dia do mês: 1–31
  • mês: 1–12 (ou nomes em inglês)
  • dia da semana: 0–7 (ou nomes em inglês, 0 ou 7 são domingo)

Implementação

  1. Instalar a biblioteca no package do sistema

$ npm install --save node-cron

2. Importar o node-cron e agendar uma tarefa:

const cron = require('node-cron');
class Schedule {
static agendaAplicacao(){
cron.schedule("* * * * * *", function(){
/*Escreva sua tarefa aqui*/
});
}
static start(){
console.log("Iniciando o schedule no serviço");
Schedule.agendaAplicacao();
}
}
module.exports = Schedule;

3. Importar a classe Schedule no servidor do sistema

const Schedule = require('./path/schedule');.
.
.
console.log("Iniciou cron schedule");Schedule.start();

--

--