コード例 #1
0
ファイル: PairCount.java プロジェクト: CheneyLeew/jstorm
  public void execute(Tuple tuple, BasicOutputCollector collector) {
    tpsCounter.count();

    Long tupleId = tuple.getLong(0);
    Pair pair = (Pair) tuple.getValue(1);

    sum.addAndGet(pair.getValue());

    collector.emit(new Values(tupleId, pair));
  }
コード例 #2
0
ファイル: MergeRecord.java プロジェクト: RuihaoYe/jstorm
  @Override
  public void execute(Tuple input) {

    tpsCounter.count();

    Long tupleId = input.getLong(0);
    Pair pair = (Pair) input.getValue(1);

    Pair trade = null;
    Pair customer = null;

    Tuple tradeTuple = null;
    Tuple customerTuple = null;

    if (input.getSourceComponent().equals(SequenceTopologyDef.CUSTOMER_BOLT_NAME)) {
      customer = pair;
      customerTuple = input;

      tradeTuple = tradeMap.remove(tupleId);
      if (tradeTuple == null) {
        customerMap.put(tupleId, input);
        return;
      }

      trade = (Pair) tradeTuple.getValue(1);

    } else if (input.getSourceComponent().equals(SequenceTopologyDef.TRADE_BOLT_NAME)) {
      trade = pair;
      tradeTuple = input;

      customerTuple = customerMap.remove(tupleId);
      if (customerTuple == null) {
        tradeMap.put(tupleId, input);
        return;
      }

      customer = (Pair) customerTuple.getValue(1);
    } else {
      LOG.info("Unknow source component: " + input.getSourceComponent());
      collector.fail(input);
      return;
    }

    tradeSum.addAndGet(trade.getValue());
    customerSum.addAndGet(customer.getValue());

    collector.ack(tradeTuple);
    collector.ack(customerTuple);

    TradeCustomer tradeCustomer = new TradeCustomer();
    tradeCustomer.setTrade(trade);
    tradeCustomer.setCustomer(customer);
    collector.emit(new Values(tupleId, tradeCustomer));
  }