forum.bitel.ru http://forum.bitel.ru/ |
|
Насколько можно нагружать конфигурацию сервера http://forum.bitel.ru/viewtopic.php?f=19&t=6939 |
Страница 1 из 1 |
Автор: | Феанор [ 06 июл 2012, 13:06 ] |
Заголовок сообщения: | Насколько можно нагружать конфигурацию сервера |
Пишу свои скрипты и чтобы потом не было проблем с переписыванием и перекомпилированием кода выношу большую часть статических переменных в настройку сервера. В начале выполнения скрипта соответственно делаю this.setup=Setup.getSetup(); ну и потом дергаю переменные все оттуда. Возникает вопрос, насколько это правильно? Насколько быстро обрабатывается конфиг, не получится ли что после первой или второй сотни параметров мною добавленных обработка получения конфига приведет к лагам и т.д? Или setup в памяти хранится и в принципе пофигу? =) |
Автор: | dimOn [ 06 июл 2012, 13:23 ] |
Заголовок сообщения: | Re: Насколько можно нагружать конфигурацию сервера |
Конечно, в памяти. |
Автор: | Феанор [ 06 июл 2012, 13:27 ] |
Заголовок сообщения: | Re: Насколько можно нагружать конфигурацию сервера |
dimOn писал(а): Конечно, в памяти. а пары ключ/значения? или это тривиальная задача их найти из конфига даже если их будет куча? или они и хранятся как объекты ключ/значение? =) |
Автор: | dimOn [ 06 июл 2012, 14:04 ] |
Заголовок сообщения: | Re: Насколько можно нагружать конфигурацию сервера |
Конфиг парсится сразу, потом хранятся обычные java-коллекции. |
Автор: | Феанор [ 06 июл 2012, 14:31 ] |
Заголовок сообщения: | Re: Насколько можно нагружать конфигурацию сервера |
ок, можно тему удалить =) |
Автор: | Amir [ 06 июл 2012, 14:38 ] |
Заголовок сообщения: | Re: Насколько можно нагружать конфигурацию сервера |
Можно еще так, когда много значений разных типов (особенно сложных) вместе: Код: import bitel.billing.server.util.Config;
public static class MyConfig extends Config { public final int value; public MyConfig( int moduleId, ParameterMap moduleSetup, Setup setup ) { super( moduleId, moduleSetup, setup ); this.value = setup.getInt( "bla.bla.bla", 0 ); } } public void doSomething() { Setup setup = Setup.getSetup(); setup.getConfig( moduleId, MyConfig.class ); } |
Автор: | skyb [ 06 июл 2012, 14:51 ] |
Заголовок сообщения: | Re: Насколько можно нагружать конфигурацию сервера |
какой закрывать тему, в вики давайте |
Автор: | Феанор [ 06 июл 2012, 15:07 ] |
Заголовок сообщения: | Re: Насколько можно нагружать конфигурацию сервера |
Amir писал(а): Можно еще так, когда много значений разных типов (особенно сложных) вместе: т.е. мы создаем свой класс , объявляем в нем свои поля, которые в конструкторе дергаем из основного конфига биллинга, а потом дергаем их в других местах через MyClass.fieldName или что нибудь типа MyClass.giveMeMyFancyValiable1()? а зачем конструктор вообще нужен? что если просто создать статические вызовы? Или это обусловлено тем, насколько часто будут дергаться поля в коде? Код: public static String getVariable(){
variable=Setup.getSetup().get("variable", ""); return variable; } |
Автор: | Amir [ 06 июл 2012, 15:53 ] |
Заголовок сообщения: | Re: Насколько можно нагружать конфигурацию сервера |
Цитата: Или это обусловлено тем, насколько часто будут дергаться поля в коде? Да, а также, чтобы при частой необходимости постоянно не конвертировать из строки в числа или в более сложные типы. Не до конца описал, там не MyClass.fieldName надо, а получать объект через getConfig, просто setup его кэширует (по классу и id модуля) и создает когда надо (после изменения конфигурации, например). Код: import bitel.billing.server.util.Config; Но его нельзя просто один раз получить и запомнить на все время - в этом случае после изменения конфигурации все поля будут старыми, т.к. сам объект старый.
public class MyClass { public static class MyConfig extends Config { public final int value; public MyConfig( int moduleId, ParameterMap moduleSetup, Setup setup ) { super( moduleId, moduleSetup, setup ); this.value = setup.getInt( "bla.bla.bla", 0 ); } } public void doSomething() { Setup setup = Setup.getSetup(); ... MyConfig myConfig = setup.getConfig( moduleId, MyConfig.class ); switch( myConfig.value ) { ... } } } |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |