package resa.evaluation.topology;
import backtype.storm.spout.SpoutOutputCollector;
import backtype.storm.task.TopologyContext;
import backtype.storm.topology.OutputFieldsDeclarer;
import backtype.storm.tuple.Fields;
import backtype.storm.tuple.Values;
import resa.topology.RedisQueueSpout;
import java.util.Map;
public class TASentenceSpout extends RedisQueueSpout {
private transient long count = 0;
private String spoutIdPrefix = "s-";
public TASentenceSpout(String host, int port, String queue) {
super(host, port, queue);
}
@Override
public void open(Map map, TopologyContext context, SpoutOutputCollector collector) {
super.open(map, context, collector);
spoutIdPrefix = spoutIdPrefix + context.getThisTaskId() + '-';
}
@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {
declarer.declare(new Fields("sid", "sentence"));
}
@Override
protected void emitData(Object data) {
String id = spoutIdPrefix + count;
count++;
collector.emit(new Values(id, data), id);
}
@Override
public void ack(Object msgId) {
}
@Override
public void fail(Object msgId) {
}
}