在完成螺栓中的某项任务后,我可以手动调用清理吗?让我们说清楚我在处理完一组输入后在代码中使用的哈希值?
还有一种方法可以在获取事件时触发整个拓扑的运行吗?例如,如果我正在从消息队列中读取并刚刚收到新消息,那么如何为拓扑强制执行另一次运行?我现在需要创建一个新拓扑吗?
答案 0 :(得分:0)
在回答之前,发出警告。假设一次只有一个起始元组通过拓扑结构,搜索MaxSpoutPending参数的文档,这不一定是安全的。
为了清理你的数据,你有几个选择,第一个是使用Coordination,这会触发每个螺栓的回调,因为它已经为一个给定的起点确认了所有传入的元组元组。
如果你要做的只是清除缓存,我们使用Guava Cache,其到期超时等于或大于messageTimeoutSecs设置。基本上,在经过足够的时间后,缓存会自动清除原始元组已完成处理或超时