java中storm中终止拓扑后的通知

java中storm中终止拓扑后的通知,java,apache-storm,Java,Apache Storm,当您终止一个拓扑时,有没有一种方法可以通知您它实际上是在java中终止的 对于集成测试,我在@Before中启动一个本地集群,然后在@After中终止它。这样,即使运行所有测试可能需要很多时间,我的拓扑也不会因为同时运行其他测试而变得“脏” 例如,在windows中,您无法完全关闭群集(关闭所有内容),是否有方法确保拓扑已被终止,因为如果另一个拓扑仍处于活动状态,我不想启动新拓扑 我已经将Config.TOPOLOGY_MESSAGE_TIMEOUT_SECS减少为0,以强制尽快杀死工人,但是,

当您终止一个拓扑时,有没有一种方法可以通知您它实际上是在java中终止的

对于集成测试,我在@Before中启动一个本地集群,然后在@After中终止它。这样,即使运行所有测试可能需要很多时间,我的拓扑也不会因为同时运行其他测试而变得“脏”

例如,在windows中,您无法完全关闭群集(关闭所有内容),是否有方法确保拓扑已被终止,因为如果另一个拓扑仍处于活动状态,我不想启动新拓扑


我已经将Config.TOPOLOGY_MESSAGE_TIMEOUT_SECS减少为0,以强制尽快杀死工人,但是,在提交新的“干净”拓扑进行下一次测试之前,我必须等待一些任意时间以确保拓扑已被终止。

对我来说,这听起来更像是隔离集成测试的问题,而不是知道拓扑何时真的停止。在同一集群上同时运行多个拓扑应该没有问题,而且那些旧的工作线程,即使它们没有完全停止,也不应该干扰作为新部署拓扑的一部分启动的新工作线程


如果担心的是工作人员访问Storm群集之外的资源,那么您最好在测试之间隔离这些资源,而不是确保所有Storm工作人员都已死亡。

我将尝试这样做,每个测试套件只运行一次拓扑,在每个测试之间清理外部系统。