我正在开发两个运行在具有典型服务器/客户端关系的单独VM中的
java程序.使用ant的并行/顺序任务,我已经能够使蚂蚁运行服务器,然后再运行客户端.我现在想要这样,当客户端进程停止时,蚂蚁会杀死服务器.我已经看到这样做是针对特定服务器应用程序(如TomCat)的定制ant任务,是否存在通用java进程执行此操作的任何方法?
解决方法
由于您正在开发服务器应用程序,您可以让它监听“shutdown”命令.那么你可以在客户端退出时使ant发送shutdown命令,如下所示:
<parallel> <server .../> <sequential> <client ... /> <!-- client has finished,send stop command to server --> </sequential> </parallel>
可能适用于您的另一个选项是在守护进程元素内启动服务器.
<parallel> <daemons> <server .../> </daemons> <sequential> <client ... /> </sequential> </parallel>
这将使服务器在守护进程中运行,这不会阻止蚂蚁完成.当蚂蚁停止时,所有守护线程(包括您的服务器)将被终止.