как контролировать работающий Java-сервис - PullRequest
0 голосов
/ 13 января 2012

Я намереваюсь создать java-программу / службу, которая будет непрерывно опрашивать rss-каналы, используя функцию 'poller' из библиотеки информации.Я хочу иметь возможность добавлять, удалять, обновлять в реальном времени RSS-URL, в то время как программа работает.У меня нет предыдущего опыта работы с библиотекой информации, но мне нужно, чтобы она потенциально масштабировалась для большого количества RSS-каналов.

  • Кто-нибудь имеет опыт работы с библиотекой информации для опроса RSS-каналов??Какие еще методы / библиотеки вы бы выбрали для опроса большого количества rss-каналов (10.000 +)?

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

Пожалуйста, дайте мне знать, если вам нужна более конкретная информация.

С уважением, Ivo

Ответы [ 2 ]

1 голос
/ 13 января 2012

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

  1. Параметр можно прочитать из файла .properties.Единственный недостаток в этом заключается в том, что файл свойств нужно будет читать каждый раз, когда вы хотите использовать это свойство, независимо от того, изменилось ли значение.

  2. Вы можете использовать JMX .Это довольно хорошая концепция, в которой вы можете управлять bean-компонентом с помощью команды jconsole (Java Management Extensions Console).После этого вы можете удаленно внедрить значения в работающую JVM.

Существует хороший пример на Sun веб-сайте Oracle, который показывает вамкак это сделать.

0 голосов
/ 13 января 2012

Да, обычным способом взаимодействия с удаленной службой будет контрольный порт, как вы его описали. Вы также можете управлять им через настройки базы данных и создать поток, который будет опрашивать эти настройки БД. Настройки БД будут установлены через какой-то веб? UI.

Если вы планируете запускать один сервис с опросом на одной машине, я бы рекомендовал не использовать его и настраивать ваш сервис либо на виртуальных машинах, либо на нескольких экземплярах сервиса на одной большой машине с большим объемом памяти. Я использую библиотеку com.sun.syndication для разбора / получения каналов.
Я не хочу быть очевидным капитаном, но я думаю, что это легко достижимо с помощью обычного многопоточного приложения и параллельной очереди. Если я правильно вас понял.

Спасибо.

...