2016-05-25 5 views
2

Ich habe TCP-Server mit Feder Integration geschrieben. Dank des ausgezeichneten Beispiels https://github.com/spring-projects/spring-integration-samples/tree/master/basic/tcp-client-server Sample Server stoppt, wenn der Benutzer q auf der Konsole gedrückt hat.Feder Integration Tcp Server Shutdown

TCP-Server ist eine eigenständige Anwendung und läuft einwandfrei, akzeptiert Anforderungen und sendet Antworten. Ich möchte ein ordnungsgemäßes Herunterfahren des Servers hinzufügen, da der Konsolenzugriff nicht möglich ist, wenn der Server als Hintergrundprozess gestartet wird.

Gibt es eine Möglichkeit für den Server, auf Ereignisse zu warten? Wenn das Shutdown-Ereignis kommt, kann ich applicationContext.stop() aufrufen.

Ich würde mich freuen, wenn Sie Ideen für einen ordnungsgemäßen Herunterfahren vorschlagen können.

Dank

Antwort

1

Ich bin nicht sicher, welche Art von „Ereignis“ Sie sprechen aber es gibt eine Reihe von Dingen, die Sie tun können.

Wenn Sie JMX aktivieren, stellt IntegrationMBeanExporterorderly shutdown zur Verfügung.

Im Falle von TCP verhindert dies die Annahme neuer Verbindungen, löscht alle neuen Anfragen und gibt Ihnen Zeit zu warten, bis alle in Bearbeitung befindlichen Anfragen beendet werden.

Sie können eine control-bus verwenden, um eine Stoppanforderung an den eingehenden Endpunkt zu senden.

Die Quelle für die Steuerbus Nachricht kann, was Sie wollen sein - Neues tcp Adapter ...

telnet 123.123.123.123 
bar.stop() 

oder andere Messaging-Technologie.

Oder Sie könnten einfach das Betriebssystem verwenden, um die JVM zu töten.

+0

Danke, Gary. Das ist es wonach ich suche. – kevin