我有一个小的 spring 应用程序,它使用 Spring 社交 twitter 从 twitter 的公共 API 流式传输数据。代码非常简单。我有一个配置类,它公开一个 twitter 模板类型的 bean。@BeanTwitter getTwitterTemplate() { Twitter twitter = new TwitterTemplate(consumerKey, consumerSecret, accessToken, accessTokenSecret); return twitter;}我有另一个服务类,它使用 twitter 模板 bean 根据一些主题标签过滤流。我在服务 bean 的 postContruct 中启动流处理。@AutowiredTwitter twitter;@Value("${app.hashtags}")String[] hashtags;@PostConstructprivate void startStream() { FilterStreamParameters parameters = new FilterStreamParameters(); for (String hashtag : hashtags) { parameters.track(hashtag); } twitter.streamingOperations().filter(parameters, tweetStreamListeners);}一旦应用程序启动,流媒体就开始了,一切正常。我的问题是如何根据某些操作停止流式传输?例如,应用程序将在调用时提供一个端点,它应该停止流处理。
1 回答
拉丁的传说
TA贡献1789条经验 获得超8个赞
该流接口有一个close()方法,所以你可以这样做:
...
private Stream myStream;
...
@PostConstruct
private void startStream() {
this.myStream = twitter.streamingOperations().filter(parameters, tweetStreamListeners);
private void closeStream() {
this.myStream.close();
}
添加回答
举报
0/150
提交
取消