BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 21 окт 2021, 12:27

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




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
СообщениеДобавлено: 25 ноя 2016, 14:14 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Сервер: вер. 5.2 сборка 1645 от 16.08.2016 17:11:56
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_26
phone вер. 5.2 сборка 286 от 25.05.2016 12:23:30

Привет.

Начали использовать пакеты трафика через узел "диапазон трафика".
Стал замечать, что при переобсчёте задним числом на тех же данных стали сползать начисления.
Например, в пакет минут входят местные и мобильные (устанавливаем зону "Пакет"), а сверх пакета местные - бесплатно, а мобильные - платно.
В итоге тарификация получается недетерминированной.
Посмотрел по коду - думаю, проблема в том, что тарификацию выполняют 2 параллельных процесса FindItemConveyor:

Код:

      Conveyor.process("data-process-log", new TariffConveyor(this.setup, this, con),
        Arrays.asList(new FindItemConveyor[] {
        new FindItemConveyor(this.setup, this, processIn, rangeMapCache), new FindItemConveyor(this.setup, this, processIn, rangeMapCache) }));

...

 public static <T, C> void process(String name, Conveyor<T, ? extends ConveyorContext<T>, ? extends ThreadContext> conveyor, List<? extends Callable<C>> tasks)
    throws InterruptedException, ExecutionException
  {
    ExecutorService executorService = WorkerTask.newFixedThreadPool(name, null, conveyor, tasks.size());
    List futures = executorService.invokeAll(tasks);

    ConcurrentUtils.awaitFutures(futures);

    executorService.shutdown();
    executorService.awaitTermination(1L, TimeUnit.DAYS);

    conveyor.sync.acquire();

    conveyor.shutdown();

    for (Future future : futures)
    {
      future.get();
    }
  }


А внутри FindItemConveyor они по-очереди берут по 20 CDR для обработки.
Опыты не проводил, но логически скорее всего проблема именно тут.
Т.е. для одного и того же договора видимо данные тарифицируются в разное время в разной последовательности.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 дек 2016, 12:46 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
up?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 дек 2016, 13:09 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Cromeshnic писал(а):
Т.е. для одного и того же договора видимо данные тарифицируются в разное время в разной последовательности.


:facepalm: Я давно заметил этот косяк, и постарался в voice его исправить. Но пока всем в Phone везло и никто не наперерся.
Подумаем что можно сделать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 янв 2017, 19:02 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Создайте тему в helpdesk . Не все может быть однозначно.У нас порядок в cdr скорее всего идет по sessionStop. И соответственно в там же самом порядке мы и считаем(но мы можем его нарушить да, но не факт что нарушили). Если кто-то позвонил и говорит пол часа, в это время могут завершится куча сессий по минуте и порядок нарушиться, они в файле будут идти раньше чем эта сессия на пол часа. Хотя если это между разными абонентами, то порядок нам не важен. А вот если внутри одного вполне может нарушить порядок. Вы точно уверены что сессии там не перепутаны из-за длительности: более короткие, которые идут позже, могут тарифицироваться раньше. Т.е даже если мы пофиксим порядок, он все равно идет не по старту сессии, а по стопу, и, возможно, это не поможет.


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

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


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

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


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

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