2016-05-25 2 views
2

J'ai écrit le serveur tcp en utilisant l'intégration de printemps. Merci à l'excellent échantillon https://github.com/spring-projects/spring-integration-samples/tree/master/basic/tcp-client-server Exemple de serveur s'arrête si l'utilisateur a appuyé sur q sur la console. TCP Serveur est une application autonome et fonctionne parfaitement bien accepter les demandes et envoyer des réponses. Je voudrais ajouter l'arrêt ordonné du serveur parce que l'accès de console n'est pas possible si le serveur est démarré en tant que processus d'arrière-plan.intégration de printemps tcp server shutdown

Y at-il un moyen pour le serveur d'attendre des événements? Si l'événement shutdown arrive, je peux appeler applicationContext.stop().

Je vous serais reconnaissant si vous pouvez suggérer des idées sur le processus d'arrêt ordonné.

Merci

Répondre

1

Je ne suis pas sûr de ce genre de « événement » dont vous parlez, mais il y a un certain nombre de choses que vous pouvez faire. Si vous activez JMX, le code IntegrationMBeanExporter indique orderly shutdown.

Dans le cas de TCP, cela l'empêche d'accepter de nouvelles connexions, supprime toutes les nouvelles demandes et vous laisse le temps d'attendre la fin de toute demande en cours de traitement).

Vous pouvez utiliser un control-bus pour envoyer une demande d'arrêt au point de terminaison entrant.

La source du message de bus de contrôle pourrait être tout ce que vous voulez - un autre adaptateur tcp ...

telnet 123.123.123.123 
bar.stop() 

ou en utilisant toute autre technologie de messagerie.

Ou vous pouvez simplement utiliser le système d'exploitation pour tuer la JVM.

+0

Merci, Gary. C'est ce que je cherche. – kevin