/ / Scheduling in runnable - Java, Frühling, Multithreading, geplante Aufgaben, Threadpool

Planung innerhalb von Runnable - Java, Spring, Multithreading, geplante Aufgaben, Threadpool

Ich verwende Spring ThreadPoolTaskScheduler, um eine Aufgabe auszuführen, und ich plane dieselbe Aufgabe innerhalb der run() Methode wie unten. Dadurch stelle ich sicher, dass die nächste geplant ist, nachdem die aktuelle Aufgabe abgeschlossen ist.

public class Task implements Runnable{
@Autowired
ThreadPoolTaskScheduler scheduler;
public void run() {
//some work
scheduler.schedule(this, new Date(System.currentTimeMillis() + delay));
}
}

Ist dieser Ansatz sicher, gibt es Parallelitätsprobleme?

Antworten:

2 für die Antwort № 1

Anstatt zu versuchen, die nächste Ausführung manuell zu konfigurieren, sollten Sie verwenden ThreadPoolTaskScheduler.scheduleWithFixedDelay(...). Es macht genau das, was Ihr Code tut, außer besser.