- Created by Igor Andrade, last modified by Laila Maria Vieira Souza on 10/06/2024
A funcionalidade Agendador de tarefas do Cronapp permite que o servidor da aplicação execute funções em um ou mais momentos específicos ou em ciclo de tempos. Dessa forma, é possível criar jobs no sistema, por exemplo, para gerar automaticamente um relatório semanal ou fechar a folha de pagamento ao final do mês.
O Cronapp também possui o bloco de programação Agendar Execução, onde é possível configurar manualmente as rotinas que serão executadas. Porém, a ferramenta do Agendador de tarefas possui uma série de vantagens:
- Garantia de Execução, mesmo que o sistema esteja offline;
- Execução única ou distribuída entre diversos servidores;
- Dezenas de opções de disparadores;
- Tolerância a falha;
- Entre outras.
Figura 1 - Agendador do Cronapp configurado para imprimir data e hora atual a cada 5 segundos
Criar ou editar tarefa
Acesse no menu do sistema Projeto > Agendador de Tarefas (Figura 2.1) é possível visualizar uma lista com todas as tarefas agendadas, permitindo editar ou excluir uma tarefa existente, além de criar.
Figura 2.1 - Agendador de tarefas do Cronapp
Os botões Nova Tarefa Agendada ou Editar (destaque 1 da Figura 2.1) abrem a janela de tarefas, nela encontramos as abas de configurações: Geral, Disparadores e Ações.
Aba Geral
Define o identificador e a descrição da tarefa, evitando alguma confusão em projetos que possuam diversos agendamentos.
A caixa de seleção Executar em todas as instâncias da aplicação permite usar todo o recurso do servidor para executar tarefas pesadas. Habilitar essa opção para jobs complexos pode tornar o sistema lento para os usuários.
Figura 2.2 - Aba Geral
Aba Disparador
A aba Disparador permite configurar a execução da tarefa em determinada data e hora ou em ciclos de tempo. Dessa forma, uma mesma tarefa pode possuir 2 ou mais agendamentos, por exemplo, disparar no dia 20 de outubro às 12h30 e todas as quartas e quintas feiras às 14h00.
Ao acessar a aba Disparadores é possível visualizar uma lista com todos os agendamentos, permitindo editar ou excluir um item, além de criar.
Figura 2.3 - Configuração do disparador
Clique no botão Novo Disparador ou Editar (item 1 da Figura 2.3) para abrir a janela Disparador, ela contém o campo Nome para identificação do agendamento e as abas Horas, Minutos, Segundos, Dias, Dias da Semana e Meses.
Em cada aba encontramos checkboxs com os valores fixos de cada período e o campo Repetir a cada, que define a cada quantos ciclos daquele período a ação será executada. No exemplo da figura 2.3, a ação será executada todos os meses.
Como podemos ver na tabela abaixo, em cada abas encontramos todos os possíveis períodos de tempo, com exceção dos minutos e segundos que estão listados em múltiplos de 5. Dessa forma é possível selecionar um ou mais momentos para cada período.
Aba | Opções |
---|---|
Horas | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22 e 23 |
Minutos | 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50 e 55 |
Segundos | 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50 e 55 |
Dias | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 e 31 |
Dias da semana | Domingo, Segunda, Terça, Quarta, Quinta, Sexta e Sábado |
Meses | Janeiro, Fevereiro, Março, Abril, Maio, Junho, Julho, Agosto, Setembro, Outubro, Novembro e Dezembro |
Tabela 1 - Período de tempo em cada aba da janela Disparador
A configuração do disparador obedece algumas regras de hierarquia para o preenchimento dos campos Horas, Minutos e Segundos.
- Se o campo "Horas" for preenchido pelo usuário, os campos "Minutos" e "Segundos" também devem ser obrigatoriamente preenchidos com algum valor, já que representam unidades de tempo menores.
- Se o usuário precisar informar apenas o campo "Minutos", o campo "Segundos" deve ser obrigatoriamente preenchido com algum valor. Não é necessário preencher o campo "Horas", pois "Minutos" é uma unidade de tempo menor que "Horas" e maior que "Segundos".
- Se o usuário precisar especificar apenas os segundos, o campo "Segundos" deve ser preenchido. Não é necessário preencher os campos "Horas" e "Minutos" (conforme o último exemplo da tabela).
Não é possível preencher os campos Dia(s) e Dia(s) da semana em um mesmo disparador. Se um campo estiver selecionado, o outro deve permanecer vazio.
Se o preenchimento dos campos for realizado pela opção Repetir a cada, as checkboxes não devem ser selecionadas.
Abaixo vemos alguns exemplos de configurações e seus resultados.
Configuração | Resultado |
---|---|
| Às 05:10:00, no dia 15 do mês de setembro. |
| Às 01:00:00, no dia 1 de todos os meses. |
| Às 00:00:00, a cada 2 dias. |
| Às 01:00:00, nos dias 1, 2, 3, 4, 8 e 9 dos meses de janeiro e fevereiro. |
| Às 01:30:00, somente nas quintas e sextas feiras em abril e maio. |
| A cada 12 segundos. |
Tabela 2 - Tabela com as configurações dos disparadores e seus resultados
Aba Ações
A aba Ações permite selecionar um ou mais blocos de programação servidor (Java) para serem executados nos momentos configurados na aba Disparadores.
Ao clicar no botão Nova Ação ou Editar, da lista de ações, a janela de seleção de Blocos de programação é aberta, informe um nome e selecione o bloco a ser executado.
Figura 2.4 - Configuração da Aba Ações
Arquivos do Agendador
Quando criamos um agendamento, o diretório jobs/
é criado dentro do pacote do Namespace e nele contém as classes Java responsáveis por essas ações, além dele, o arquivo scheduler.json
, responsável pela configuração é criada no diretório META-INF/
.
Figura 2.5 - Arquivos gerados pelo Agendador de tarefas do Cronapp
Nota
Além de não ser necessário, não recomendamos alterações nestes arquivos, pois pode causar um comportamento incorreto e suas alterações serão perdidas se a IDE precisar atualizá-los.
Nesta página