Czy Spring Boot ma coś, co pozwala uruchomić zadanie kilka minut później po rozmowie?
Aktualizacja: Okazało się, że Spring Boot ma ThreadPoolTaskScheduler
. Pozwala to na jednorazową realizację zadania z opóźnieniem czasowym. Zobacz odpowiedź poniżej
1
Lenar
3 grudzień 2018, 20:06
1 odpowiedź
Najlepsza odpowiedź
Najpierw musimy zdefiniować fasolę
@Bean
public ThreadPoolTaskScheduler getScheduler(){
ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
scheduler.setPoolSize(10);
return scheduler;
}
Zadanie, które należy wykonać
public class WakeUpCallTask implements Runnable {
private String parameter1;
private String parameter2;
public WakeUpCallTask(String parameter1, String parameter2) {
super();
this.parameter1= parameter1;
this.parameter2= parameter2;
}
@Override
public void run() {
// Code that should be executed
}
}
Przykład punktu końcowego - planowanie zadania w 10000ms
@Autowired
ThreadPoolTaskScheduler scheduler;
@PostMapping(value = "/wake-me-up", consumes = "application/json")
@ResponseStatus(HttpStatus.OK)
public void scheduleCall(@RequestBody WakeMeUpRequest request) {
scheduler.schedule(
new WakeUpCallTask(request.getParameter1(), request.getParameter2()),
new Date(System.currentTimeMillis() + 10000));
}
0
Lenar
4 grudzień 2018, 21:25
Podobne pytania
Nowe pytania
java
Java to język programowania wysokiego poziomu. Użyj tego tagu, jeśli masz problemy z używaniem lub zrozumieniem samego języka. Ten tag jest rzadko używany samodzielnie i jest najczęściej używany w połączeniu z [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] i [maven].