forum.bitel.ru http://forum.bitel.ru/ |
|
[BUG] Диапазоны трафика и параллельность тарификации (CRM) http://forum.bitel.ru/viewtopic.php?f=10&t=12130 |
Страница 1 из 1 |
Автор: | Cromeshnic [ 25 ноя 2016, 14:14 ] |
Заголовок сообщения: | [BUG] Диапазоны трафика и параллельность тарификации |
Сервер: вер. 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 для обработки. Опыты не проводил, но логически скорее всего проблема именно тут. Т.е. для одного и того же договора видимо данные тарифицируются в разное время в разной последовательности. |
Автор: | Cromeshnic [ 01 дек 2016, 12:46 ] |
Заголовок сообщения: | Re: [BUG] Диапазоны трафика и параллельность тарификации |
up? |
Автор: | stark [ 26 дек 2016, 13:09 ] |
Заголовок сообщения: | Re: [BUG] Диапазоны трафика и параллельность тарификации |
Cromeshnic писал(а): Т.е. для одного и того же договора видимо данные тарифицируются в разное время в разной последовательности. Я давно заметил этот косяк, и постарался в voice его исправить. Но пока всем в Phone везло и никто не наперерся. Подумаем что можно сделать. |
Автор: | stark [ 26 янв 2017, 19:02 ] |
Заголовок сообщения: | Re: [BUG] Диапазоны трафика и параллельность тарификации (CR |
Создайте тему в helpdesk . Не все может быть однозначно.У нас порядок в cdr скорее всего идет по sessionStop. И соответственно в там же самом порядке мы и считаем(но мы можем его нарушить да, но не факт что нарушили). Если кто-то позвонил и говорит пол часа, в это время могут завершится куча сессий по минуте и порядок нарушиться, они в файле будут идти раньше чем эта сессия на пол часа. Хотя если это между разными абонентами, то порядок нам не важен. А вот если внутри одного вполне может нарушить порядок. Вы точно уверены что сессии там не перепутаны из-за длительности: более короткие, которые идут позже, могут тарифицироваться раньше. Т.е даже если мы пофиксим порядок, он все равно идет не по старту сессии, а по стопу, и, возможно, это не поможет. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |