package com.jstorm.example.unittests.window;
import backtype.storm.task.OutputCollector;
import backtype.storm.task.TopologyContext;
import backtype.storm.topology.base.BaseWindowedBolt;
import backtype.storm.tuple.Tuple;
import backtype.storm.windowing.TupleWindow;
import com.alibaba.jstorm.common.metric.AsmCounter;
import com.alibaba.jstorm.metric.MetricClient;
import java.util.List;
import java.util.Map;
/**
* Created by binyang.dby on 2016/7/21.
*/
public class SlidingTupleTestBolt extends BaseWindowedBolt {
private MetricClient metricClient;
private AsmCounter asmCounter;
@Override
public void prepare(Map stormConf, TopologyContext context, OutputCollector collector) {
this.metricClient = new MetricClient(context);
this.asmCounter = metricClient.registerCounter("SlidingTupleTsTopologyTest.BoltSum");
}
@Override
public void execute(TupleWindow inputWindow) {
List<Tuple> tuplesInWindow = inputWindow.get();
int sum = 0;
for(Tuple tuple : tuplesInWindow)
sum += tuple.getInteger(0);
asmCounter.update(sum);
}
}