← Voltar para o blog
ARTIGO

Como Usar O Jobrunr

Utilizando Jobrunr para Processamento em Background no Java

A programação assíncrona surge da necessidade de devolver a resposta o mais rápido possível para o usuário. É como dar um "tapinha nas costas" e dizer:

Quando precisamos persistir estado, garantir retentativas automáticas (retries) e ter um painel visual (dashboard) sem precisar reinventar a roda, o Jobrunr entra como uma excelente alternativa no ecossistema Java.

Por que usar o Jobrunr? (A Metáfora da Lanchonete)

Imagine que a sua API é o balcão de uma lanchonete superlotada. O cliente chega e pede um "Hambúrguer Triplo com Fritas" (uma tarefa pesada, como processamento de relatórios ou envio de milhares de e-mails). Se o seu atendente (a thread principal da API) for até a chapa fritar a carne, a fila no balcão vai dar a volta no quarteirão e todos os outros clientes sofrerão com Timeout.

O Jobrunr atua como o seu Gerente de Cozinha. O atendente simplesmente anota o pedido no sistema (grava no banco de dados), avisa o cliente que o pedido já vai sair e atende o próximo da fila.

Enquanto isso, o Jobrunr faz a mágica acontecer:

Como configurar no seu projeto Spring Boot?

Foi feita uma correção na sua configuração: você não precisa importar a biblioteca jobrunr e o starter do Spring Boot ao mesmo tempo, pois o starter já traz tudo. Além disso, a versão foi atualizada para a mais recente (8.8.1).

No seu pom.xml, adicione:

<dependency>
    <groupId>org.jobrunr</groupId>
    <artifactId>jobrunr-spring-boot-4-starter</artifactId>
    <version>8.8.1</version>
</dependency>

(Nota: Se estiver usando Spring Boot 3, troque o artefato para jobrunr-spring-boot-3-starter)

E no seu application.properties, ative o servidor e o dashboard:

# Habilita o processamento em background
jobrunr.background-job-server.enabled=true

# Habilita e configura o Dashboard (Acesse via http://localhost:8000)
jobrunr.dashboard.enabled=true
jobrunr.dashboard.port=8000

Pronto! O Jobrunr utilizará automaticamente o mesmo banco de dados já configurado no seu projeto e executará as migrations necessárias (criando suas próprias tabelas) ao iniciar a aplicação.