Während die Aufgabe in @Async nicht mit @PreDestroy in Spring Boot gestoppt werden kannJava

Java-Forum
Anonymous
 Während die Aufgabe in @Async nicht mit @PreDestroy in Spring Boot gestoppt werden kann

Post by Anonymous »

Ich habe ein Problem mit asynchronen Methoden, die auf einem customTaskExecutors ausgeführt werden. Bei der Ausführungsmethode erreiche ich nie die letzte log.info, die besagt, dass die Ausführung des Threads beendet ist (wo ich normalerweise anderen Bereinigungscode einfügen würde). Ich würde diesen Thread in der PreDestroy-Methode gerne stoppen, indem ich den booleschen Wert auf „false“ setze, aber „pre destroy“ wird nur aufgerufen, wenn Spring alle seine Threads beendet hat, einschließlich des „customTaskExecutor“. Ich habe die benutzerdefinierte Exectur bereits mit einer kurzen WaitTermination-Zeit versehen, es hat sich nichts geändert. Ich habe auch eine Klasse erstellt, in der ich alle TaskExecutors verbinde und sie extern herunterfahre. Das alles stoppt den ThreadExecutor, aber nie so, dass ich Code nach der While-Schleife ausführen kann.
Hat jemand eine Best Practice für das, was ich tun möchte (im Grunde den Booleschen Wert für die While-Schleife auf dem Sigterm-Signal ändern)? Oder muss ich PreDestroy für alle Aufräumarbeiten verwenden, wenn ich TaskExecutors von Spring Boot verwenden möchte?

Code: Select all

@PreDestroy
public void shutDown() {
log.info("Shutting down AsyncRunner...");
printingRunning = false;
}

@Override
@Async("customTaskExecutor")  // Using the custom executor from AsyncConfig
public void run(String... args) throws Exception {
log.info("AsyncRunner starting on thread: {}", Thread.currentThread().getName());

try {
while(printingRunning && !Thread.currentThread().isInterrupted()) {
Thread.sleep(1000);
this.printWorkOut();
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt(); // Restore interrupted status
log.info("AsyncRunner was interrupted.");
}

log.info("AsyncRunner finished on thread: {}", Thread.currentThread().getName());
}
Grüße

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post