Асинхронный непрерывный опрос данных из БД, отправляемых на Java-клиент - PullRequest
1 голос
/ 24 июля 2011

Может ли кто-нибудь подсказать, каков наилучший подход к этому:

Что мне нравится делать, так это проводить непрерывный опрос (или запрос) таблицы базы данных.И каждый раз, когда происходит новое обновление, я хочу передать это клиенту в приложении Java.Идея состоит в том, что пользователи могут предложить, на какие данные они хотят подписаться, и определить обработчик событий для обработки любых входящих данных.

Поэтому мне нужно, чтобы опрос проводился в фоновом режиме.Но у меня, похоже, проблемы с этим.Я пытаюсь использовать простую шину событий для локальной публикации / подписки JVM, но не могу запустить асинхронный непрерывный опрос.

Ответы [ 2 ]

2 голосов
/ 24 июля 2011

У вашего решения много недостатков.
Лучшим решением является создание бизнес-логики, которая отвечает за сохранение данных в базе данных и за уведомления. Например, вы можете создать приложение, которое подписано на тему JMS. Другой компонент получает вызовы для обработки и сохранения данных. Он хранит данные, а затем отправляет уведомление об этом действии. Все компоненты, подписанные на тему, получают это уведомление и реагируют соответствующим образом.

1 голос
/ 24 июля 2011

Посмотрите на java.util.concurrent . Вы можете создать планировщик для запуска с заданным интервалом, используя пул потоков, как в ScheduledThreadPoolExecutor .

...