Feedback
Thanks for building JobRunr, I like it a lot! Before that I used similar libraries in Ruby and Golang and JobRunr so far is the most pleasant one to use. I especially like the dashboard, it’s awesome! Alex Denisov
View more feedback on jobrunr.io.
Features
- Simple: just use Java 8 lambda’s to create a background job.
- Distributed & cluster-friendly: guarantees execution by single scheduler instance using optimistic locking.
- Persistent jobs: using either a RDBMS (four tables and a view) or a NoSQL data store.
- Embeddable: built to be embedded in existing applications.
- Minimal dependencies: (ASM, slf4j and either jackson and jackson-datatype-jsr310, gson or a JSON-B compliant library).
Do you like to work Spring based?
Add the jobrunr-spring-boot-3-starter to your dependencies and you’re almost ready to go! Just set up your application.properties
:
# the job-scheduler is enabled by default
# the background-job-server and dashboard are disabled by default
org.jobrunr.job-scheduler.enabled=true
org.jobrunr.background-job-server.enabled=true
org.jobrunr.dashboard.enabled=true
Or do you prefer a fluent API?
Define a javax.sql.DataSource
and put the following code on startup:
@SpringBootApplication
public class JobRunrApplication {
public static void main(String[] args) {
SpringApplication.run(JobRunrApplication.class, args);
}
@Bean
public JobScheduler initJobRunr(DataSource dataSource, JobActivator jobActivator) {
return JobRunr.configure()
.useJobActivator(jobActivator)
.useStorageProvider(SqlStorageProviderFactory
.using(dataSource))
.useBackgroundJobServer()
.useDashboard()
.initialize().getJobScheduler();
}
}
How can I contribute?
- Take a look at issues with tag called
Good first issue
- Join the discussion on Github discussion - we won’t be using Gitter anymore.
- Answer questions on issues.
- Fix bugs reported on issues, and send us pull request.
How to build?
git clone https://github.com/jobrunr/jobrunr.git
cd jobrunr
cd core/src/main/resources/org/jobrunr/dashboard/frontend
npm i
npm run build
cd -
./gradlew publishToMavenLocal
Then, in your own project you can depend on org.jobrunr:jobrunr:1.0.0-SNAPSHOT
.