У меня есть небольшое приложение Spring, которое использует социальный твиттер Spring для потоковой передачи данных из публичного API твиттера.
Код очень прост.У меня есть класс конфигурации, который предоставляет компонент bean типа twitter template.
@Bean
Twitter getTwitterTemplate() {
Twitter twitter = new TwitterTemplate(consumerKey, consumerSecret, accessToken, accessTokenSecret);
return twitter;
}
У меня есть другой класс обслуживания, который использует шаблон bean-компонента twitter для фильтрации потока на основе некоторых хэштегов.Я запускаю процесс потоковой передачи в 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);
}
Как только приложение запускается, потоковая передача запускается, и все работает нормально.
Мой вопрос: как остановить потоковую передачу на основе какого-либо действия?Скажем, например, что приложение предоставит конечную точку при вызове, она должна остановить процесс потоковой передачи.