BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 20 июн 2025, 23:17

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
СообщениеДобавлено: 06 июл 2012, 13:06 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
Пишу свои скрипты и чтобы потом не было проблем с переписыванием и перекомпилированием кода выношу большую часть статических переменных в настройку сервера. В начале выполнения скрипта соответственно делаю this.setup=Setup.getSetup();
ну и потом дергаю переменные все оттуда. Возникает вопрос, насколько это правильно? Насколько быстро обрабатывается конфиг, не получится ли что после первой или второй сотни параметров мною добавленных обработка получения конфига приведет к лагам и т.д? Или setup в памяти хранится и в принципе пофигу? =)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 июл 2012, 13:23 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Конечно, в памяти.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 июл 2012, 13:27 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
dimOn писал(а):
Конечно, в памяти.

а пары ключ/значения? или это тривиальная задача их найти из конфига даже если их будет куча? или они и хранятся как объекты ключ/значение? =)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 июл 2012, 14:04 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Конфиг парсится сразу, потом хранятся обычные java-коллекции.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 июл 2012, 14:31 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
ок, можно тему удалить =)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 июл 2012, 14:38 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Можно еще так, когда много значений разных типов (особенно сложных) вместе:
Код:
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 );
}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 июл 2012, 14:51 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
какой закрывать тему, в вики давайте

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 июл 2012, 15:07 
Не в сети
Клиент

Зарегистрирован: 30 мар 2009, 17:51
Сообщения: 431
Карма: 23
Amir писал(а):
Можно еще так, когда много значений разных типов (особенно сложных) вместе:

т.е. мы создаем свой класс , объявляем в нем свои поля, которые в конструкторе дергаем из основного конфига биллинга, а потом дергаем их в других местах через MyClass.fieldName или что нибудь типа MyClass.giveMeMyFancyValiable1()?

а зачем конструктор вообще нужен? что если просто создать статические вызовы? Или это обусловлено тем, насколько часто будут дергаться поля в коде?
Код:
      public static String getVariable(){
       variable=Setup.getSetup().get("variable", "");
       return variable;
      }


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 06 июл 2012, 15:53 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Цитата:
Или это обусловлено тем, насколько часто будут дергаться поля в коде?
Да, а также, чтобы при частой необходимости постоянно не конвертировать из строки в числа или в более сложные типы. Не до конца описал, там не 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 )
   {
      ...
   }
}

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.040s | 34 Queries | GZIP : On ]