我们有一个不想连续运行storm拓扑的用例。相反,有一组输入(10k+)应该在指定的时间进行处理,喷口不断地发射这些输入,并由拓扑中的其余螺栓进行处理。一旦所有的输入都被处理了,我的喷口中就没有任何东西可以从nexttuple发出了。
在这个时候,我们希望我们的拓扑进入睡眠状态,并重新启动进程每天晚上12:00上午。
在storm配置中是否有任何属性可以设置为每天运行一次拓扑,并在处理完成并在指定时间启动后休眠?
我们有一个不想连续运行storm拓扑的用例。相反,有一组输入(10k+)应该在指定的时间进行处理,喷口不断地发射这些输入,并由拓扑中的其余螺栓进行处理。一旦所有的输入都被处理了,我的喷口中就没有任何东西可以从nexttuple发出了。
在这个时候,我们希望我们的拓扑进入睡眠状态,并重新启动进程每天晚上12:00上午。
在storm配置中是否有任何属性可以设置为每天运行一次拓扑,并在处理完成并在指定时间启动后休眠?
1条答案
按热度按时间2skhul331#
我不知道你要什么样的功能。storm不是一个批处理系统,它应该是连续运行的。考虑一下storm是否非常适合这个用例。
也就是说,你应该能够实现你想要的。你可以把一个“我做了”的消息在你的喷口输入结束。当喷口命中该消息并确认所有其他挂起的消息时,它可以使用nimbus客户端终止或停用拓扑(取决于您是要终止还是停用),请参阅https://stackoverflow.com/a/37134473/8845188. 最后一步是使用您喜爱的调度软件在每天午夜重新提交/重新激活拓扑。