Управление длительным подключением к потоковому API Twitter из приложения Java EE - PullRequest
2 голосов
/ 18 января 2011

Мне нужно создать длительное соединение из приложения Java EE6 с API потоковой передачи Twitter , а также иметь возможность отслеживать и восстанавливать соединение при сбое.

Я запустил тест с JAX-RS и OAuth на Jersey следующим образом, и он обрабатывает потоковые данные так, как мне хотелось бы.

WebResource resource = client.resource(STATUS_URI);
resource.addFilter(oauthFilter);
ClientResponse clientResponse = resource.get(ClientResponse.class);
InputStream is = clientResponse.getEntityInputStream();
BufferedReader r = new BufferedReader(new InputStreamReader(is, "UTF8"));
boolean more = true;
while (more) {
    String jsonTweet = r.readLine();
    //send tweet to JMS queue
    ..... 
}

Я пытался запустить приведенный выше код в одиночном '@PostConstructметод, но он блокирует и приложение не загружается должным образом.

Мой вопрос: каков рекомендуемый способ инициализации подключения из среды Java EE при запуске приложения, а затем отслеживания + повторного подключения при ошибках без непосредственного создания новых потоков?

1 Ответ

0 голосов
/ 19 января 2011

рекомендуемый способ инициализации соединения из среды Java EE при запуске приложения

  • Вы можете использовать @Service для создания Singleton MBean (реализация, специфичная для JBoss), ноТем не менее, я предпочитаю @Startup & @Singleton, чтобы добиться успеха при развертывании приложения для переносимости с сервером.

монитор + повторное подключение при ошибках без непосредственного создания новых потоков?

  • ThreadPoolExecutor: ExecutorService, который выполняет каждую отправленную задачу, используя один из, возможно, нескольких объединенных потоков, обычно настраиваемых с использованием фабричных методов Executors.

В исключительных случаях задачи могут быть повторно переданы в службу исполнителя, задача может включать в себя мониторинг, повторное подключение и т. Д.

...