Ich entwickle eine Spring Boot App, in der ich Java-Code schreiben muss, um die App selbst (einschließlich der Threads) herunterzufahren und dann neu zu starten. Ich habe die folgenden zwei Methoden versucht, ist die erste Linux-Befehl in Java wie folgt auszustellen:Spring Boot Programmgesteuert neu starten App
istProcess p = Runtime.getRuntime().exec("kill -SIGINT " + pid);
wo pid, dass sich der App. Dies hat den gleichen Effekt wie das Drücken von "ctrl + c"
. Aber nachdem ich die App erfolgreich heruntergefahren habe, weiß ich nicht, wie ich es neu starten kann. Ich habe versucht, einen anderen Befehl (wie "mvn spring-boot:run
", wie ich die App starte) mit der gleichen Methode, aber da die App bereits heruntergefahren ist, funktioniert das nicht.
Zweitens, ich habe auch versucht, die refresh()
Methode der AbstractApplicationContext Aufruf wie folgt:
AbstractApplicationContext appContext = new AnnotationConfigApplicationContext();
appContext.registerShutdownHook();
appContext.refresh();
Aber ich glaube nicht, diese Art von Kontext erfrischend ist das gleiche wie ein Neustart?
Was ist der richtige Weg, um eine Spring Boot App mit Java-Code neu zu starten? Jede Hilfe wird geschätzt, danke!
Ich glaube nicht, dass es eine richtige Art und Weise ist Frühling Boot-Anwendung mit Java neu zu starten Code. Warum nicht Shell-Skript stattdessen? Auch serverseitige Anwendungen sollten so konzipiert sein, dass sie lange laufen können. –