package de.fhb.twitalyse.bolt.redis;
import java.text.SimpleDateFormat;
import java.util.Date;
import backtype.storm.topology.OutputFieldsDeclarer;
import backtype.storm.tuple.Fields;
import backtype.storm.tuple.Tuple;
import backtype.storm.tuple.Values;
/**
* @author Christoph Ott <ott@fh-brandenburg.de>
*
*/
public class CountWordsInCircleBolt extends BaseRedisBolt {
/**
*
*/
private static final long serialVersionUID = -5197977666638999798L;
public CountWordsInCircleBolt(String host, int port) {
super(host, port);
}
@Override
public void execute(Tuple input) {
String word = input.getString(1);
Date today = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("dd_MM_yyyy");
// Saves all words of today
this.zincrby("coordswords_" + sdf.format(today), 1d, word);
// Saves all words
this.zincrby("coordswords", 1d, word);
// Saves # of filtered words
this.incr("#coordswords_filtered");
// Saves # of filtered words of today
this.incr("#coordswords_filtered_" + sdf.format(today));
this.collector.emit(input, new Values(input.getLong(0)));
this.collector.ack(input);
}
@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {
declarer.declare(new Fields("id"));
}
}