privatefinalTriggerServicetriggerService;privatefinalPersistentTaskServicepersistentTaskService;publicvoidbuildVehicle(){// Vehicle has to be Serializablefinalvarv=newVehicle();// set any data to v ...// EITHER: queue it - will always run latertriggerService.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 TriggerServicepersistentTaskService.runOrQueue(BuildVehicleTask.ID.newUniqueTrigger(v));}
privatefinalPersistentTaskServicepersistentTaskService;publicvoidbuildVehicle(){vartrigger=TriggerBuilder.<Vehicle>newTrigger("task2").id("my-id")// will overwrite existing triggers.state(newVehicle("funny")).runAfter(Duration.ofHours(2)).build();persistentTaskService.runOrQueue(trigger);}
privatefinalApplicationEventPublishereventPublisher;publicvoidbuildVehicle(){// Vehicle has to be Serializablefinalvarv=newVehicle();// send an event with the trigger inside - same as calling the PersistentTaskServiceeventPublisher.publishEvent(TriggerTaskCommand.of(BuildVehicleTask.ID.newUniqueTrigger(v)));}