9 JavaScript Tricks To Code Like A Pro!

When I first began coding JavaScript I found myself writing code that is not “good” code as I was often using the old JavaScript specification/features and many times my code could have been…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




Executando Scheduling em Java com JobRunr

Acredito que todos nós desenvolvedores nos deparamos ou nos depararemos com a necessidade de executarmos alguns processos agendados ou em segundo plano.

Se precisarmos implementar algo deste tipo e a implementação não for feita de forma correta, isso ocasionará em regras complexas e também em problemas de performance.

E neste artigo vou demonstrar como também é simples implementar estes recursos com JobRunr com SpringBoot.

JobRunr é uma biblioteca que nos permite executar processos que podem ser agendados e executados em segundo plano em aplicações.

Um dos pontos interessantes dessa biblioteca é que com ela vem embarcado um Dashboard com visão de todos os processos em execução e aqueles que já foram executados. Dessa forma, torna-se mais ágil a análise dos processos executados.

Bora começar! Para isso, precisaremos incluir a dependência do JobRunr em nosso projeto. Por isso, inclua ele no pom.xml:

Após incluir a dependência, precisaremos adicionar os atributos de configurações do JobRunr em nosso application.properties:

Uma vez adicionados esses atributos, fica definido que queremos dar início a uma instância do BackgroundJobServer e também ao Dashboard do JobRunr, assim que o Spring iniciar o nosso projeto;

Ao tentarmos subir o projeto após esta configuração, encontraremos um problema:

Por padrão, o JobRunr ao iniciar uma instância do BackgroundJobServer , procura o DataSource configurado no Projeto, mas como não temos nenhum DataSource configurado, teremos os erros da imagem anterior.

Não precisamos nos preocupar quanto a isso, no entanto é aqui que temos que tomar a decisão, se quisermos que as informações dos Processos estejam no banco configurado do nosso projeto ou armazenado no banco in-memory.

Caso escolha a opção de um banco, basta configurar um Spring DataSouce.

No nosso exemplo, iremos usar o Banco in-memory. Para isso, nós criaremos uma configuração no Spring implementando um Bean para o StorageProvider para quando o JobRunr subir junto com nossa aplicação:

Após a implementação da Configuração, podemos executar nosso projeto e ele agora iniciará subindo o BackgroundJobServer e o Dashboard com sucesso:

Agora iremos implementar alguns Endpoints para testarmos a execução de nossos processos.

Antes da criação dos Endpoints para fins de exemplo, vamos criar uma Classe “JobRunrSample.java”. Para executar algo nesta classe temos um método que faz a soma de dois números randômicos e no outro um método que chama este primeiro método, porém antes da chamada tem um Sleep de alguns segundos que passaremos como parâmetro.

Em uma outra classe “ProcessScheduler.java”, vamos implementar 3 opções de chamada do JobRunr:

Finalmente, iremos criar os Endpoints. Criamos a classe “JobRunrSampleApplication.java” para chamar nossos processos.

E por fim podemos acompanhar os processos que já foram executados e os que ainda estão em execução.

Dashboard
Processo em execução
Detalhes de um processo que foi executado

Com o JobRunr fica fácil controlar seus processos que precisam de agendamento, sem falar que ele ajuda muito na análise dos processos sem a necessidade de você ficar quebrando a cabeça analisando um monte de Logs para saber se seus processos finalizaram ou não. Essas análises nos fazem perder muito tempo em nosso dia a dia, sendo assim espero que essa biblioteca te ajude como tem me ajudado.

A intensão deste artigo era trazer uma introdução sobre a Lib JobRunr. No futuro, podemos explorar como utilizar Schedules em aplicações distribuídas;

Add a comment

Related posts:

A Practical Tip to Help Shed Emotional Baggage

There are myriad strategies for traveling the spiritual path. We can focus on nonattachment. Or impermanence. On not clinging or resisting. On not wanting or fearing. We can emphasize letting go. Or…

Plan a Trip From Detroit to Aruba

Thousands of tourists come to Aruba each year for both company and pleasure. Flights from Detroit to Aruba will help you get there quickly, whether you’re taking a last-minute vacation or a…

Last gen consoles are being abandoned starting with Gotham Knights

An upcoming game based on The Caped Crusader’s sidekicks will no longer release on last-gen consoles.