@BeanPersistentTask<String>task2(){returnnewPersistentTask<String>(){@Overridepublicvoidaccept(Stringstate){// DO STUFF}// gives you access to more customizations@OverridepublicRetryStrategyretryStrategy(){returnRetryStrategy.NO_RETRY;}};}
@Component(BuildVehicleTask.NAME)@RequiredArgsConstructor@Slf4jpublicclassBuildVehicleTaskimplementsPersistentTask<Vehicle>{privatestaticfinalStringNAME="buildVehicleTask";publicstaticfinalTaskId<Vehicle>ID=newTaskId<>(NAME);privatefinalVehicleRepositoryvehicleRepository;@Overridepublicvoidaccept(Vehiclevehicle){// do stuff// savevehicleRepository.save(vehicle);}// OPTIONAL@OverridepublicRetryStrategyretryStrategy(){// run 5 times, multiply the execution count with 4, add the result in HOURS to now.returnnewMultiplicativeRetryStrategy(5,ChronoUnit.HOURS,4);}// OPTIONAL// if the task in accept requires a DB transaction, join them together with the framework// if true the TransactionTemplate is used. Set here any timeouts.@OverridepublicbooleanisTransactional(){returntrue;}}