/** * Licensed under the terms of the Apache License 2.0. Please see LICENSE file in the project root for terms. */ package apex.benchmark; import benchmark.common.advertising.RedisAdCampaignCache; import com.datatorrent.api.Context; import com.datatorrent.api.DefaultInputPort; import com.datatorrent.api.DefaultOutputPort; import com.datatorrent.common.util.BaseOperator; public class RedisJoin extends BaseOperator { private transient RedisAdCampaignCache redisAdCampaignCache; private String redisServerHost; public String getRedisServerHost() { return redisServerHost; } public void setRedisServerHost(String redisServerHost) { this.redisServerHost = redisServerHost; } public transient DefaultInputPort<Tuple> input = new DefaultInputPort<Tuple>() { @Override public void process(Tuple tuple) { String campaign_id = redisAdCampaignCache.execute(String.valueOf(tuple.adId)); if (campaign_id == null || campaign_id.isEmpty()) { return; } tuple.campaignId = campaign_id; output.emit(tuple); } }; public transient DefaultOutputPort<Tuple> output = new DefaultOutputPort(); @Override public void setup(Context.OperatorContext context) { this.redisAdCampaignCache = new RedisAdCampaignCache(redisServerHost); this.redisAdCampaignCache.prepare(); } }