Как я могу общаться с пакетным процессом? - PullRequest
0 голосов
/ 03 января 2019

У меня есть консольное приложение, которое имеет бесконечный цикл, чтобы оно работало круглосуточно, оно имеет доступ к базе данных, как и должно, но конфигурации создаются через базу данных, которую процесс читает один раз, и когда он попадает в бесконечный циклон использует конфигурацию, поэтому, когда мне нужно изменить любую конфигурацию, я должен остановить ее, изменить информацию в базе данных и перезапустить пакетный процесс.Мои вопросы:

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

Спасибо.

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Когда консольное приложение время от времени обращается к базе данных во время его работы (скажем, каждые 5 минут), это стандартная практика.

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

Нет связи через сокет или новые компоненты не требуются.

0 голосов
/ 03 января 2019

сокетная связь является универсальным решением, но требует некоторой работы. Если у вас есть доступ к компьютеру, на котором запущен этот пакетный процесс, вы можете просто прочитать System.in в цикле и обновить конфигурации в соответствии со значениями, предоставленными оператором.

...