package com.ganqiang.recsys.bolt;
import com.ganqiang.recsys.entity.UserActionLog;
import com.ganqiang.recsys.hbase.HBaseStore;
import com.ganqiang.recsys.util.JsonHelper;
import com.ganqiang.recsys.util.StringUtil;
import backtype.storm.topology.BasicOutputCollector;
import backtype.storm.topology.OutputFieldsDeclarer;
import backtype.storm.topology.base.BaseBasicBolt;
import backtype.storm.tuple.Fields;
import backtype.storm.tuple.Tuple;
import backtype.storm.tuple.Values;
public class HBaseStoreBolt extends BaseBasicBolt {
private static final long serialVersionUID = 9158412709377600779L;
public void execute(Tuple input, BasicOutputCollector collector) {
String jsons = (String) input.getValue(0);
UserActionLog log = JsonHelper.format(jsons);
HBaseStore.writeUserActionLog(log);
String action = log.getAction();
if (StringUtil.isNullOrBlank(action)) {
if(action.equals("0")){
HBaseStore.writeUserPref(log);
}else if(action.equals("4")){
HBaseStore.writeScore(log);
}
}
collector.emit(new Values("ok"));
}
public void declareOutputFields(OutputFieldsDeclarer declarer) {
declarer.declare(new Fields("message"));
}
}