一、通过发送系统级别的Tuple进行计算该时间段的数据
设置发送系统级别tuple的时间间隔
Config conf = new Config();
conf.put(Config.TOPOLOGY_TICK_TUPLE_FREQ_SECS, 5);
这样每个Bolt在设置的时间间隔都会收到一个系统级别的tuple,我们对这个tuple进行判断, 接收到了,就表示时间间隔到了, 我们可以将这个时间间隔内统计的数据做相应的操作(入库)。
但是, 肯定不是这个好的, 一定有问题,是的, 它是向所有的Bolt发送系统级别的tuple, 我们需要对所有的Bolt进行系统级别tuple的处理。
二、该进: 不在创建Builder设置发送间隔,而是哪个Bolt需要设置的时候, 重写一个getComponentConfiguration()
@Override
public Map<String, Object> getComponentConfiguration() {
Map<String, Object> conf = new HashMap<String, Object>();
conf.put(Config.TOPOLOGY_TICK_TUPLE_FREQ_SECS, 5);;
return conf;
}