Package org.jobrunr.scheduling
Class BackgroundJobRequest
java.lang.Object
org.jobrunr.scheduling.BackgroundJobRequest
Provides static methods for creating fire-and-forget, delayed and recurring jobs as well as to delete existing background jobs.
If you prefer not to use a static accessor, you can inject the
JobRequestScheduler
which exposes the same methods.-
Method Summary
Modifier and TypeMethodDescriptionstatic void
create
(Stream<JobBuilder> jobBuilderStream) Creates a newJob
for eachJobBuilder
and provides an alternative to the job annotation.static JobId
create
(JobBuilder jobBuilder) Creates a newJob
using aJobBuilder
that can be enqueued or scheduled and provides an alternative to the job annotation.static String
createRecurrently
(RecurringJobBuilder recurringJobBuilder) Creates a new or alters the existing recurring job based on the givenRecurringJobBuilder
.static void
Deletes the recurring job based on the given id.static void
Deletes a job and sets its state to DELETED.static void
static void
enqueue
(Stream<? extends JobRequest> input) Creates new fire-and-forget jobs for each item in the input stream.static JobId
enqueue
(UUID id, JobRequest jobRequest) Creates a new fire-and-forget job based on a given jobRequest.static JobId
enqueue
(JobRequest jobRequest) Creates a new fire-and-forget job based on a given jobRequest.static JobId
schedule
(Instant instant, JobRequest jobRequest) Creates a new fire-and-forget job based on the given jobRequest and schedules it to be enqueued at the given moment of time.static JobId
schedule
(LocalDateTime localDateTime, JobRequest jobRequest) Creates a new fire-and-forget job based on the given jobRequest and schedules it to be enqueued at the given moment of time.static JobId
schedule
(OffsetDateTime offsetDateTime, JobRequest jobRequest) Creates a new fire-and-forget job based on the given jobRequest and schedules it to be enqueued at the given moment of time.static JobId
schedule
(ZonedDateTime zonedDateTime, JobRequest jobRequest) Creates a new fire-and-forget job based on the given jobRequest and schedules it to be enqueued at the given moment of time.static JobId
schedule
(UUID id, Instant instant, JobRequest jobRequest) Creates a new fire-and-forget job based on the given jobRequest and schedules it to be enqueued at the given moment of time.static JobId
schedule
(UUID id, LocalDateTime localDateTime, JobRequest jobRequest) Creates a new fire-and-forget job based on the given jobRequest and schedules it to be enqueued at the given moment of time.static JobId
schedule
(UUID id, OffsetDateTime offsetDateTime, JobRequest jobRequest) Creates a new fire-and-forget job based on the given jobRequest and schedules it to be enqueued at the given moment of time.static JobId
schedule
(UUID id, ZonedDateTime zonedDateTime, JobRequest jobRequest) Creates a new fire-and-forget job based on the given jobRequest and schedules it to be enqueued at the given moment of time.static String
scheduleRecurrently
(String id, String cron, ZoneId zoneId, JobRequest jobRequest) Creates a new or alters the existing recurring job based on the given id, cron expression,ZoneId
and jobRequest.static String
scheduleRecurrently
(String id, String cron, JobRequest jobRequest) Creates a new or alters the existing recurring job based on the given id, cron expression and jobRequest.static String
scheduleRecurrently
(String id, Duration duration, JobRequest jobRequest) Creates a new or alters the existing recurring job based on the given id, duration and jobRequest.static String
scheduleRecurrently
(String cron, JobRequest jobRequest) Creates a new recurring job based on the given cron expression and the given jobRequest.static String
scheduleRecurrently
(Duration duration, JobRequest jobRequest) Creates a new recurring job based on the given duration and the given jobRequest.static void
setJobRequestScheduler
(JobRequestScheduler jobRequestScheduler)
-
Method Details
-
create
Creates a newJob
using aJobBuilder
that can be enqueued or scheduled and provides an alternative to the job annotation.- Parameters:
jobBuilder
- the jobBuilder with all the details of the job- Returns:
- the id of the job
-
create
Creates a newJob
for eachJobBuilder
and provides an alternative to the job annotation.- Parameters:
jobBuilderStream
- the jobBuilders for which to create jobs.
-
enqueue
Creates a new fire-and-forget job based on a given jobRequest. JobRunr will try to find the JobRequestHandler in the IoC container or else it will try to create the handler by calling the default no-arg constructor.An example:
BackgroundJobRequest.enqueue(new MyJobRequest());
- Parameters:
jobRequest
- the jobRequest which defines the fire-and-forget job.- Returns:
- the id of the job
-
enqueue
Creates a new fire-and-forget job based on a given jobRequest. JobRunr will try to find the JobRequestHandler in the IoC container or else it will try to create the handler by calling the default no-arg constructor.An example:
BackgroundJobRequest.enqueueJobRequest(id, new MyJobRequest());
- Parameters:
id
- the uuid with which to save the jobjobRequest
- the jobRequest which defines the fire-and-forget job.- Returns:
- the id of the job
-
enqueue
Creates new fire-and-forget jobs for each item in the input stream. JobRunr will try to find the JobRequestHandler in the IoC container or else it will try to create the handler by calling the default no-arg constructor.An example:
Stream<MyJobRequest> workStream = getWorkStream(); BackgroundJobRequest.enqueue(workStream);
- Parameters:
input
- the stream of jobRequests for which to create fire-and-forget jobs
-
schedule
Creates a new fire-and-forget job based on the given jobRequest and schedules it to be enqueued at the given moment of time. JobRunr will try to find the JobRequestHandler in the IoC container or else it will try to create the handler by calling the default no-arg constructor.An example:
BackgroundJobRequest.schedule(ZonedDateTime.now().plusHours(5), new MyJobRequest());
- Parameters:
zonedDateTime
- the moment in time at which the job will be enqueued.jobRequest
- the jobRequest which defines the fire-and-forget job- Returns:
- the id of the Job
-
schedule
Creates a new fire-and-forget job based on the given jobRequest and schedules it to be enqueued at the given moment of time. JobRunr will try to find the JobRequestHandler in the IoC container or else it will try to create the handler by calling the default no-arg constructor. If a job with that id already exists, JobRunr will not save it again.An example:
BackgroundJobRequest.schedule(id, ZonedDateTime.now().plusHours(5), new MyJobRequest());
- Parameters:
id
- the uuid with which to save the jobzonedDateTime
- the moment in time at which the job will be enqueued.jobRequest
- the jobRequest which defines the fire-and-forget job- Returns:
- the id of the Job
-
schedule
Creates a new fire-and-forget job based on the given jobRequest and schedules it to be enqueued at the given moment of time. JobRunr will try to find the JobRequestHandler in the IoC container or else it will try to create the handler by calling the default no-arg constructor.An example:
BackgroundJobRequest.schedule(OffsetDateTime.now().plusHours(5), new MyJobRequest());
- Parameters:
offsetDateTime
- the moment in time at which the job will be enqueued.jobRequest
- the jobRequest which defines the fire-and-forget job- Returns:
- the id of the Job
-
schedule
Creates a new fire-and-forget job based on the given jobRequest and schedules it to be enqueued at the given moment of time. JobRunr will try to find the JobRequestHandler in the IoC container or else it will try to create the handler by calling the default no-arg constructor. If a job with that id already exists, JobRunr will not save it again.An example:
BackgroundJobRequest.schedule(id, OffsetDateTime.now().plusHours(5), new MyJobRequest());
- Parameters:
id
- the uuid with which to save the joboffsetDateTime
- the moment in time at which the job will be enqueued.jobRequest
- the jobRequest which defines the fire-and-forget job- Returns:
- the id of the Job
-
schedule
Creates a new fire-and-forget job based on the given jobRequest and schedules it to be enqueued at the given moment of time. JobRunr will try to find the JobRequestHandler in the IoC container or else it will try to create the handler by calling the default no-arg constructor.An example:
BackgroundJobRequest.schedule(LocalDateTime.now().plusHours(5), new MyJobRequest());
- Parameters:
localDateTime
- the moment in time at which the job will be enqueued. It will use the systemDefault ZoneId to transform it to an UTC InstantjobRequest
- the jobRequest which defines the fire-and-forget job- Returns:
- the id of the Job
-
schedule
Creates a new fire-and-forget job based on the given jobRequest and schedules it to be enqueued at the given moment of time. JobRunr will try to find the JobRequestHandler in the IoC container or else it will try to create the handler by calling the default no-arg constructor. If a job with that id already exists, JobRunr will not save it again.An example:
BackgroundJobRequest.schedule(id, LocalDateTime.now().plusHours(5), new MyJobRequest());
- Parameters:
id
- the uuid with which to save the joblocalDateTime
- the moment in time at which the job will be enqueued. It will use the systemDefault ZoneId to transform it to an UTC InstantjobRequest
- the jobRequest which defines the fire-and-forget job- Returns:
- the id of the Job
-
schedule
Creates a new fire-and-forget job based on the given jobRequest and schedules it to be enqueued at the given moment of time. JobRunr will try to find the JobRequestHandler in the IoC container or else it will try to create the handler by calling the default no-arg constructor.An example:
BackgroundJobRequest.schedule(Instant.now().plusHours(5), new MyJobRequest());
- Parameters:
instant
- the moment in time at which the job will be enqueued.jobRequest
- the lambda which defines the fire-and-forget job- Returns:
- the id of the Job
-
schedule
Creates a new fire-and-forget job based on the given jobRequest and schedules it to be enqueued at the given moment of time. JobRunr will try to find the JobRequestHandler in the IoC container or else it will try to create the handler by calling the default no-arg constructor. If a job with that id already exists, JobRunr will not save it again.An example:
BackgroundJobRequest.schedule(id, Instant.now().plusHours(5), new MyJobRequest());
- Parameters:
id
- the uuid with which to save the jobinstant
- the moment in time at which the job will be enqueued.jobRequest
- the jobRequest which defines the fire-and-forget job- Returns:
- the id of the Job
-
delete
Deletes a job and sets its state to DELETED. If the job is being processed, it will be interrupted.- Parameters:
id
- the id of the job
-
delete
- See Also:
-
scheduleRecurrently
Creates a new recurring job based on the given cron expression and the given jobRequest. JobRunr will try to find the JobRequestHandler in the IoC container or else it will try to create the handler by calling the default no-arg constructor. The jobs will be scheduled using the systemDefault timezone.An example:
BackgroundJobRequest.scheduleRecurrently(Cron.daily(), new MyJobRequest());
- Parameters:
cron
- The cron expression defining when to run this recurring jobjobRequest
- the jobRequest which defines the recurring job- Returns:
- the id of this recurring job which can be used to alter or delete it
- See Also:
-
scheduleRecurrently
Creates a new or alters the existing recurring job based on the given id, cron expression and jobRequest. JobRunr will try to find the JobRequestHandler in the IoC container or else it will try to create the handler by calling the default no-arg constructor. The jobs will be scheduled using the systemDefault timezoneAn example:
BackgroundJobRequest.scheduleRecurrently("my-recurring-job", Cron.daily(), new MyJobRequest());
- Parameters:
id
- the id of this recurring job which can be used to alter or delete itcron
- The cron expression defining when to run this recurring jobjobRequest
- the jobRequest which defines the recurring job- Returns:
- the id of this recurring job which can be used to alter or delete it
- See Also:
-
scheduleRecurrently
public static String scheduleRecurrently(String id, String cron, ZoneId zoneId, JobRequest jobRequest) Creates a new or alters the existing recurring job based on the given id, cron expression,ZoneId
and jobRequest. JobRunr will try to find the JobRequestHandler in the IoC container or else it will try to create the handler by calling the default no-arg constructor.An example:
BackgroundJobRequest.scheduleRecurrently("my-recurring-job", Cron.daily(), ZoneId.of("Europe/Brussels"), new MyJobRequest());
- Parameters:
id
- the id of this recurring job which can be used to alter or delete itcron
- The cron expression defining when to run this recurring jobzoneId
- The zoneId (timezone) of when to run this recurring jobjobRequest
- the jobRequest which defines the recurring job- Returns:
- the id of this recurring job which can be used to alter or delete it
- See Also:
-
scheduleRecurrently
Creates a new recurring job based on the given duration and the given jobRequest. The first run of this recurring job will happen after the given duration unless your duration is smaller or equal than your backgroundJobServer pollInterval.An example:
MyService service = new MyService(); BackgroundJob.scheduleRecurrently(Duration.parse("P5D"), () -> service.doWork());
- Parameters:
duration
- the duration defining the time between each instance of this recurring jobjobRequest
- the jobRequest which defines the recurring job- Returns:
- the id of this recurring job which can be used to alter or delete it
-
scheduleRecurrently
Creates a new or alters the existing recurring job based on the given id, duration and jobRequest. The first run of this recurring job will happen after the given duration unless your duration is smaller or equal than your backgroundJobServer pollInterval.An example:
MyService service = new MyService(); BackgroundJob.scheduleRecurrently("my-recurring-job", Duration.parse("P5D"), () -> service.doWork());
- Parameters:
id
- the id of this recurring job which can be used to alter or delete itduration
- the duration defining the time between each instance of this recurring jobjobRequest
- the jobRequest which defines the recurring job- Returns:
- the id of this recurring job which can be used to alter or delete it
-
createRecurrently
Creates a new or alters the existing recurring job based on the givenRecurringJobBuilder
.An example:
BackgroundJob.createRecurrently(aRecurringJob() .withCron("* * 0 * * *") .withDetails(() -> service.sendMail(toRequestParam, subjectRequestParam, bodyRequestParam));
- Parameters:
recurringJobBuilder
- the builder defining the recurring job- Returns:
- the id of this recurring job which can be used to alter or delete it
-
delete
Deletes the recurring job based on the given id.An example:
BackgroundJobRequest.delete("my-recurring-job"));
- Parameters:
id
- the id of the recurring job to delete
-
setJobRequestScheduler
-