从喷口杀死风暴拓扑

时间:2017-12-28 16:18:36

标签: apache-storm topology

我们有一个用例,我们不希望连续运行风暴拓扑。相反,有一组输入(10K +)应该在指定时间处理,Spout连续发出这些输入并由拓扑中的其余螺栓处理。处理完所有输入后,我的喷口中没有任何东西从nextTuple中发出。

此时我们希望我们的拓扑进入睡眠状态,并在每天凌晨12:00上午重新启动该过程。

是否有任何属性可以在storm配置中设置为每天运行一次拓扑并在处理完成后休眠并在指定时间启动?

1 个答案:

答案 0 :(得分:0)

我不知道你所要求的功能。 Storm不是一个批处理系统,它意味着不断运行。考虑一下Storm是否适合这个用例。

那就是说,你应该能够实现你想要的。您可以在鲸鱼喷水输入结束时输入“我已完成”消息。当spout命中该消息并且所有其他待处理消息被激活时,它可以使用Nimbus客户端来终止或停用拓扑(取决于您是要杀死还是取消激活),请参阅https://stackoverflow.com/a/37134473/8845188。然后最后一步是使用您最喜欢的调度软件每天午夜重新提交/重新激活拓扑。