代码之家  ›  专栏  ›  技术社区  ›  Sandro

用ant停止并行java任务

  •  10
  • Sandro  · 技术社区  · 15 年前

    我正在开发两个java程序,它们在不同的VM中运行,具有典型的服务器/客户机关系。使用ant的并行/顺序任务,我已经能够让ant运行服务器,然后运行客户端。我现在希望这样,当客户端进程停止时,ant会杀死服务器。我已经见过针对特定服务器应用程序(比如TomCat)的定制ant任务可以做到这一点,有没有任何方法可以通过通用java进程做到这一点?

    1 回复  |  直到 15 年前
        1
  •  9
  •   Jason Day    15 年前

    因为您正在开发服务器应用程序,所以可以让它监听“shutdown”命令。然后,您可以让ant在客户端退出时向其发送shutdown命令,例如:

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

    daemons 元素。

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

    这将使服务器在守护进程线程中运行,这不会阻止ant完成。当ant停止时,包括服务器在内的所有守护进程线程都将终止。