我有一個(gè)小的 spring 應(yīng)用程序,它使用 Spring 社交 twitter 從 twitter 的公共 API 流式傳輸數(shù)據(jù)。代碼非常簡(jiǎn)單。我有一個(gè)配置類,它公開一個(gè) twitter 模板類型的 bean。@BeanTwitter getTwitterTemplate() { Twitter twitter = new TwitterTemplate(consumerKey, consumerSecret, accessToken, accessTokenSecret); return twitter;}我有另一個(gè)服務(wù)類,它使用 twitter 模板 bean 根據(jù)一些主題標(biāo)簽過濾流。我在服務(wù) bean 的 postContruct 中啟動(dòng)流處理。@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);}一旦應(yīng)用程序啟動(dòng),流媒體就開始了,一切正常。我的問題是如何根據(jù)某些操作停止流式傳輸?例如,應(yīng)用程序?qū)⒃谡{(diào)用時(shí)提供一個(gè)端點(diǎn),它應(yīng)該停止流處理。
1 回答

拉丁的傳說
TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊
該流接口有一個(gè)close()方法,所以你可以這樣做:
...
private Stream myStream;
...
@PostConstruct
private void startStream() {
this.myStream = twitter.streamingOperations().filter(parameters, tweetStreamListeners);
private void closeStream() {
this.myStream.close();
}
添加回答
舉報(bào)
0/150
提交
取消