Ich habe diese Konfiguration mit Spring Boot:Stopp Frühlings-Boot auf Fadenfehler
@Bean
public TaskExecutor a() {
return new SimpleAsyncTaskExecutor();
}
@Bean
public CommandLineRunner b() {
return (String... args) -> {
RunnableTask task = SomeRunnableTask();
a().execute(task);
};
}
Wenn dieser Thread Anschläge (aus irgendeinem Grund) ich den Frühling Boot-Anwendung heruntergefahren werden soll.
Der Thread ist ein langwieriger Prozess, der mit einer Datenbank, einem Webservice, einem Socket ... verbunden ist. Es ist also ziemlich wahrscheinlich, dass es an einem bestimmten Punkt scheitern wird.
Was ist der richtige Weg, um Spring Boot herunterzufahren, wenn ein Thread stoppt? Sollte ich nicht SimpleAsyncTaskExecutor
von Spring verwenden?
Danke!
Also, was haben Sie versucht, die App zu verlassen? Hat 'System.exit (1)' nicht für Sie funktioniert? – Strelok
'System.exit (1)' Ich habe es versucht, und es funktioniert, aber ich würde definitiv lieber die Anwendung auf eine anmutige Weise herunterfahren, rufen Sie die Spring Boot 'close()' Methode, um sicherzustellen, dass alles gereinigt wird oben. Ist das nicht sinnvoller als ein einfaches und "brutales" System.exit (1)? – Will
@Strelok trotzdem bin ich kein Entwickler, also wenn Sie denken, dass ich das System einfach so verlassen sollte, bin ich glücklich. Ich hatte erwartet, dass Spring Boot einen Mechanismus hat, mir zu sagen, wenn ein Thread tot ist, damit ich entsprechend handeln kann. – Will