Step 1: Add the dependency
<dependency>
<groupId>org.jobrunr</groupId>
<artifactId>jobrunr-spring-boot-3-starter</artifactId>
<version>8.1.0</version>
</dependency>
implementation 'org.jobrunr:jobrunr-spring-boot-3-starter:8.1.0'
Step 2: Enable the background server and dashboard
jobrunr.background-job-server.enabled=true
jobrunr.dashboard.enabled=true
Step 3: Schedule your first AI job
@Service
public class EmbeddingService {
private final JobScheduler jobScheduler;
private final VectorStore vectorStore;
private final EmbeddingModel embeddingModel;
// Constructor injection...
public void onDocumentCreated(UUID documentId) {
jobScheduler.enqueue(() -> generateEmbedding(documentId));
}
@Job(name = "Generate embedding for %0")
public void generateEmbedding(UUID documentId) {
Document doc = documentRepo.findById(documentId);
float[] embedding = embeddingModel.embed(doc.getContent());
vectorStore.save(documentId, embedding);
}
}
That’s it. Your embedding generation now runs in the background, retries on failure, and shows up in the dashboard at http://localhost:8000.

