如何与storm一起使用twitter4j

如何与storm一起使用twitter4j,twitter,twitter4j,twitter-streaming-api,Twitter,Twitter4j,Twitter Streaming Api,我使用twitter4j查询界面过滤推文。但是twitter使用queue.offer(status)。我没有状态参考,如何集成这些API来处理实时推文。这就是我们成功过滤推文的方法: public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) { queue = new LinkedBlockingQueue<Status>(1000); _collector

我使用twitter4j查询界面过滤推文。但是twitter使用queue.offer(status)。我没有状态参考,如何集成这些API来处理实时推文。

这就是我们成功过滤推文的方法:

public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) {
    queue = new LinkedBlockingQueue<Status>(1000);
    _collector = collector;
    StatusListener listener = new StatusListener() {

        public void onStatus(Status status) {
            queue.offer(status);
        }

        public void onDeletionNotice(StatusDeletionNotice sdn) {
        }

        public void onTrackLimitationNotice(int i) {
        }

        public void onScrubGeo(long l, long l1) {
        }

        public void onException(Exception e) {
        }

    };
    TwitterStreamFactory fact = new TwitterStreamFactory(new ConfigurationBuilder().setUser(_username).setPassword(_pwd).build());
    _twitterStream = fact.getInstance();
    _twitterStream.addListener(listener);
    _twitterStream.filter(new FilterQuery().track(TERMS_TO_TRACK).setIncludeEntities(true));
}
public void open(地图配置、拓扑上下文、喷动输出收集器){
队列=新的LinkedBlockingQueue(1000);
_收集器=收集器;
StatusListener=新建StatusListener(){
公共无效状态(状态){
排队。报价(状态);
}
公共作废删除通知(状态删除通知sdn){
}
公开无效限制通知(int i){
}
CRUBGEO上的公共空隙(长l,长l1){
}
公共无效OneException(例外e){
}
};
TwitterStreamFactory事实=新TwitterStreamFactory(新配置生成器().setUser(_用户名).setPassword(_pwd).build());
_twitterStream=fact.getInstance();
_twitterStream.addListener(listener);
_twitterStream.filter(新FilterQuery().track(TERMS_TO_track).setIncludeEntities(true));
}

我们不使用流式API,因为我们根据日期范围和一系列仅在查询API界面上可用的其他条件过滤推文。因此,我最初的问题是如何集成,如果我没有访问Status对象的权限,您可以让Status对象在bolts execute()方法中解析Tuple对象,如下所示:
Status Status=(Status)Tuple.getValue(0)