Информация о конфигурации в БД? - PullRequest
0 голосов
/ 23 июля 2011

У меня есть много вещей в app.config, и когда необходимы изменения, требуется перезапуск приложения. Плохо для моей системы веб-сервера 24x7 (это действительно 24x7, даже не 23x7). Я хотел бы использовать хорошую стратегию для хранения информации о конфигурации в таблице БД и запрашивать / использовать ее по мере необходимости. Я немного погуглил и выхожу всухую. У кого-нибудь есть предложения, прежде чем я изобрету колесо?

Спасибо.

1 Ответ

0 голосов
/ 23 июля 2011

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

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

openKey("/my_app");
createKey("basic_settings");
openKey("basic_settings");
createValue("log_directory","c:\logs");
getValue("/my_app/basic_settings","log_directory");

Древовидная структура позволяет логически разделять похожие данные (например, вы можете иметь значение «log_directory» под несколькими различными ключами) иизбегает слишком многословных имен, которые вы найдете в файлах свойств.

Все значения являются просто строками (varchar2 в БД), поэтому есть некоторые издержки при преобразовании логических значений и чисел: но это только данные конфигурации, так что кого это волнует??

Я также создаю значение «settings_changed» со строкой даты и времени: так что любое приложение может быстро определить, нужно ли ему обновить свою конфигурацию (вам, очевидно, нужно помнить, чтобы установить его при изменении чего-либо, хотя).

Возможно, уже есть инструменты, позволяющие делать подобные вещи, но это было всего лишь за несколько дней написания кода, и это доставляет удовольствие.Я добавил инструменты командной строки для редактирования и загрузки / выгрузки частей или всего дерева, а затем сделал быстрый графический редактор на Java Swing.

...