-
Notifications
You must be signed in to change notification settings - Fork 0
Queue a task execution
Paul Sterl edited this page Jan 19, 2025
·
1 revision
private final TriggerService triggerService;
private final PersistentTaskService persistentTaskService;
public void buildVehicle() {
// Vehicle has to be Serializable
final var v = new Vehicle();
// set any data to v ...
// EITHER: queue it - will always run later
triggerService.queue(BuildVehicleTask.ID.newUniqueTrigger(v));
// OR: will queue it and run it now if possible.
// if the scheduler service is missing it is same as using the TriggerService
persistentTaskService.runOrQueue(BuildVehicleTask.ID.newUniqueTrigger(v));
}
private final PersistentTaskService persistentTaskService;
public void buildVehicle() {
var trigger = TaskTriggerBuilder
.<Vehicle>newTrigger("task2")
.id("my-id") // will overwrite existing triggers
.state(new Vehicle("funny"))
.runAfter(Duration.ofHours(2))
.build();
persistentTaskService.runOrQueue(trigger);
}
private final ApplicationEventPublisher eventPublisher;
public void buildVehicle() {
// Vehicle has to be Serializable
final var v = new Vehicle();
// send an event with the trigger inside - same as calling the PersistentTaskService
eventPublisher.publishEvent(TriggerTaskCommand.of(BuildVehicleTask.ID.newUniqueTrigger(v)));
}