我的拓扑结构的一部分依赖于使用 3rd 方 API,该 API 将某些调用限制在 15 分钟窗口内。在最坏的情况下,速率限制将下降,并且螺栓需要休眠 15 分钟。不幸的是,我似乎无法告诉 Storm 在一项任务上“睡” 15 分钟,但我希望我错了。
或者,有没有办法在风暴中解决像这样的时间限制任务?(有一个喷嘴喂另一个喷嘴?)。
我的拓扑结构的一部分依赖于使用 3rd 方 API,该 API 将某些调用限制在 15 分钟窗口内。在最坏的情况下,速率限制将下降,并且螺栓需要休眠 15 分钟。不幸的是,我似乎无法告诉 Storm 在一项任务上“睡” 15 分钟,但我希望我错了。
或者,有没有办法在风暴中解决像这样的时间限制任务?(有一个喷嘴喂另一个喷嘴?)。
我不知道任何允许您这样做的配置,并且Config没有为此提供配置条目。
解决方法如您所建议。当您从 3rd 方 API 获得输出时,将其提供给专用 Spout,后者又会将其发送到“回调”Bolt。
可能想要检查这里TOPOLOGY_DISRUPTOR_WAIT_STRATEGY
提到的属性
你可能想看看ticktuple
(但它只有 600 秒)
```
Config conf = new Config();
conf.put(Config.TOPOLOGY_TICK_TUPLE_FREQ_SECS, 1);
```
所以看看这个