Cron Jobs - Serviços Agendados
Antes de começar
Antes de proceder certifique-se que que tem noções básicas em JavaScript e que já tem as noções básicas do Netuno com o passo-a-passo disponível na Academia.
Introdução
É comum a necessidade de executar tarefas periodicamente, ou seja, de tempos em tempos é necessário enviar dados para outro sistema, ou importar dados de outro sistema, disparar um e-mail, validar registos em base de dados, e muito mais...
No Linux/UNIX/Mac existe o serviço Cron com o famoso ficheiro de configuração crontab
, já no Windows existe o Task Manager (Gestor de Tarefas).
E no Netuno o Cron Jobs já vem integrado, ajudando assim a evitar configurações externas.
Este tipo de operações periódicas são conhecidas como Cron Jobs ou em português Serviços Agendados.
Cada aplicação do Netuno pode ter inúmeros Cron Jobs, e os Cron Jobs do Netuno tanto podem executar serviços e URLs internos, como também URLs externos.
Para mais informações verifique a documentação do recurso cron.
Como Funciona
Cada aplicação tem a configuração dos seus próprios serviços agendados (cron jobs) com a respectiva configuração de execução.
Para simplificar cada serviço agendado é um job à parte, que tem a sua própria configuração de execução, podendo ser executado a cada minuto, de 5 em 5 minutos, a cada hora, num determinado dia e hora da semana, etc... também tem o URL que será chamado quando for o momento da sua execução.
O Netuno utiliza a biblioteca Quartz Scheduler para gerir a execução dos serviços agendados. A configuracão das regras de temporização é respectiva a esta biblioteca.
Assim, a execução de cada job passa pela execução de um URL (endereço web, link), que tanto pode ser externo como interno da própria aplicação. Ao ser um link externo tanto pode ser de uma outra aplicação como de um URL qualquer externo na internet, na rede ou no computador.
No gráfico acima demonstra que o Netuno contém 2 aplicações, onde cada uma tem configurado 2 jobs (serviços agendados), que são executados em momentos diferentes, respectivos a uma configuração qualquer.
O comportamento da execução que irá contecer é o seguinte:
- App 1 lança 2 jobs:
- Job 1: Executa um URL de serviço interno da própria App 1.
- Job 2: Executa um URL externo, público.
- App 2 lança 2 jobs:
- Job 3: Executa um URL de serviço interno da própria App 2
- Job 4: Executa um URL de serviço da App 1.
As aplicações devem ter os serviços que são executados pelo Cron Jobs dentro da pasta:
- 📂
server/services/jobs
Cada URL é executado com o método HTTP POST. Na configuração do job permite adicionar parâmetros adicionais, e também uma chave de segredo para evitar que seja executada fora do contexto controlado.