JobRunr Pro is a drop-in replacement for JobRunr, available under a paid subscription and adds a lot of extra functionality to support your difficult business processes:
- JobRunr Pro Dashboard: are you processing a lot of jobs and do you quickly need to find that one job? Thanks to the Job Filter feature in the JobRunr Pro dashboard you will quickly find any job by name, method signature or any other filters.
- Transaction plugin: are you using the Spring Boot Starter or the Micronaut integration? Enjoy out of the box integration with their transactions using the
@Transactionalannotation thanks to the Transaction plugin.
- Instant job processing: Are you in a hurry? JobRunr Pro starts processing your enqueued jobs instantly.
- Queues: or are you processing a lot of jobs and do you have critical business processes that must finish on-time? Queues to the rescue! Just schedule your job with a higher priority and it will bypass all the other jobs.
- Job Chaining: reuse existing service methods and chain jobs to have cleaner code and an immediate overview of your business process.
- Batches: batches allow you to create a bunch of background jobs atomically and combined with Job Chaining they can make complex workflows easy!
- Server Tags: do you have jobs that can only run on certain servers (e.g. Jobs that should only run on Windows, Linux, …)? Server Tags let you filter jobs by certain tags so that they are only run on certain servers.
- Mutexes: do you consume a resource in your jobs that can not be shared? Thanks to mutexes, JobRunr will postpone jobs with shared mutexes until the mutex is free.
- Replace your jobs: are you enqueueing your jobs with an external id and do you need to replace a job? By default, JobRunr will ignore the update to avoid job duplicates in a load-balanced environment. Have a look at replacing your jobs using
- Job Results: are your jobs returning results? Do you have API clients polling for the outcome of a certain job? Thanks to
JobResultsyou can easily return results without needing to worry about (D)DOS attacks. //TODO
- Job Filters: do you want to execute some custom business logic when a Job succeeds or fails? JobRunr filters to the rescue! And in JobRunr Pro, JobRunr filters can be any Spring / Micronaut / Quarkus bean - JobRunr will automatically find and use them.
- Job Migrations: easily migrate existing scheduled jobs via job migrations - CI/CD for your background jobs is now easier than ever. Or, you can just make your old job methods package private and JobRunr Pro will still execute them.
- Custom delete policy: You probably like clean code? Then you also like a clean dashboard. Using a custom delete policy, you can delete jobs faster and keep dashboard and database clean.
- Custom Retry Policy: Do you have some special needs regarding retrying failed Jobs? Then use the
CustomRetryPolicywhere you can specify the time to wait between each retry or just implement your own
RetryPolicyif you want to have full control.
- Pause recurring jobs: Do you want to pause your recurring jobs? Just pause them from the dashboard and resume them whenever you are ready.
- Start & Stop Background Job Processing: Do you want to stop background job processing for a while? Just stop the background job servers from the dashboard and start them whenever you are ready.
- Database fault-tolerance: is your SQL / NoSQL database sometimes going down? Are you having connection troubles from your application to your database? JobRunr Pro has you covered and it will automatically stop job processing temporarily in this case. The moment your database is back online, JobRunr will start processing jobs again as if nothing ever happened.
JobRunr Pro is by no means a finished product - subscribing will allow me to build extra features including:
- Notification support if suddenly many jobs start failing
- a Slack and Microsoft Teams plugin which allows you to follow up on jobs and be notified if batches are finished (so business does not have to disturb you to find out how long a job will take)
- feature requests from you!