spring社交推特停止流媒体运营
spring social twitter stop streaming operation
我有一个 spring 小应用程序,它使用 Spring 社交推特从推特 public API.
流式传输数据
代码非常简单。我有一个配置 class 公开了一个 twitter 模板类型的 bean。
@Bean
Twitter getTwitterTemplate() {
Twitter twitter = new TwitterTemplate(consumerKey, consumerSecret, accessToken, accessTokenSecret);
return twitter;
}
我有另一个服务 class,它使用 Twitter 模板 bean 根据一些主题标签过滤流。我在服务bean的postContruct中启动流处理。
@Autowired
Twitter twitter;
@Value("${app.hashtags}")
String[] hashtags;
@PostConstruct
private void startStream() {
FilterStreamParameters parameters = new FilterStreamParameters();
for (String hashtag : hashtags) {
parameters.track(hashtag);
}
twitter.streamingOperations().filter(parameters, tweetStreamListeners);
}
应用程序启动后,流式传输开始,一切正常。
我的问题是如何根据某些操作停止流式传输?例如,应用程序将在调用时提供一个端点,它应该停止流式传输过程。
Stream 接口有一个 close() 方法,所以你可以这样做:
...
private Stream myStream;
...
@PostConstruct
private void startStream() {
this.myStream = twitter.streamingOperations().filter(parameters, tweetStreamListeners);
private void closeStream() {
this.myStream.close();
}
我有一个 spring 小应用程序,它使用 Spring 社交推特从推特 public API.
流式传输数据代码非常简单。我有一个配置 class 公开了一个 twitter 模板类型的 bean。
@Bean
Twitter getTwitterTemplate() {
Twitter twitter = new TwitterTemplate(consumerKey, consumerSecret, accessToken, accessTokenSecret);
return twitter;
}
我有另一个服务 class,它使用 Twitter 模板 bean 根据一些主题标签过滤流。我在服务bean的postContruct中启动流处理。
@Autowired
Twitter twitter;
@Value("${app.hashtags}")
String[] hashtags;
@PostConstruct
private void startStream() {
FilterStreamParameters parameters = new FilterStreamParameters();
for (String hashtag : hashtags) {
parameters.track(hashtag);
}
twitter.streamingOperations().filter(parameters, tweetStreamListeners);
}
应用程序启动后,流式传输开始,一切正常。
我的问题是如何根据某些操作停止流式传输?例如,应用程序将在调用时提供一个端点,它应该停止流式传输过程。
Stream 接口有一个 close() 方法,所以你可以这样做:
...
private Stream myStream;
...
@PostConstruct
private void startStream() {
this.myStream = twitter.streamingOperations().filter(parameters, tweetStreamListeners);
private void closeStream() {
this.myStream.close();
}