2010-02-19 9 views
10

Ich entwickle zwei Java-Programme, die in separaten VMs laufen, die eine typische Server/Client-Beziehung haben. Mit den parallelen/sequentiellen Aufgaben von Ameisen konnte ich den Server und dann den Client laufen lassen. Ich würde es jetzt gerne so, dass, wenn der Client-Prozess gestoppt hat, Ant den Server tötet. Ich habe gesehen, dass dies mit benutzerdefinierten Ameisen-Aufgaben für bestimmte Server-Anwendungen (wie TomCat) getan, gibt es eine Methode, dies mit generischen Java-Prozesse zu tun?Anhalten einer parallelen Java-Aufgabe mit ant

Antwort

8

Da Sie die Serveranwendung entwickeln, können Sie sie auf einen Befehl "shutdown" warten lassen. Dann können Sie Ameise senden sie haben den Befehl zum Herunterfahren, wenn der Client beendet wird, so etwas wie:

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

Eine weitere Option, die funktionieren kann für Sie den Server in einem daemons Element beginnen soll.

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

Dadurch wird den Server läuft in einem Daemon-Thread machen, die von dem Abschließen nicht ant verhindern. Wenn ant aufhört, werden alle Daemon-Threads, einschließlich Ihres Servers, beendet.

+0

Perfekt, das ist es genau. – Sandro