Arrêt d'une tâche java parallèle avec ant


Je développe deux programmes java qui s'exécutent dans des machines virtuelles distinctes qui ont une relation serveur/client typique. En utilisant les tâches parallèles/séquentielles de ant, j'ai pu obtenir ant pour exécuter le serveur, puis le client. Maintenant, je voudrais que lorsque le client s'est arrêté, ant tue le serveur. J'ai vu cela avec des tâches ant personnalisées pour des applications serveur spécifiques (comme TomCat), existe-t-il une méthode pour le faire avec des processus java génériques?

Author: Sandro, 2010-02-19

1 answers

Puisque vous développez l'application serveur, vous pouvez lui faire écouter une commande "shutdown". Ensuite, vous pouvez demander à ant de lui envoyer la commande shutdown lorsque le client se termine, quelque chose comme:

<parallel>
    <server .../>
    <sequential>
        <client ... />
        <!-- client has finished,  send stop command to server -->
    </sequential>
</parallel>

Une autre option qui peut fonctionner pour vous est de démarrer le serveur à l'intérieur d'un élément daemons.

<parallel>
    <daemons>
        <server .../>
    </daemons>
    <sequential>
        <client ... />
    </sequential>
</parallel>

Cela fera fonctionner le serveur dans un thread de démon, ce qui n'empêchera pas ant de terminer. Lorsque ant s'arrête, tous les threads de démon, y compris votre serveur, seront terminés.

 9
Author: Jason Day, 2010-02-21 15:43:46