BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 мар 2024, 21:53

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Подневная обработка логов cdr.
СообщениеДобавлено: 13 май 2015, 17:07 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
В модуле Phone можно добавить один час на обработку. В Voice в целях оптимизации хранения данных о диапазонах потребленного трафика хотим сделать обработку логов только за день, т.е нельзя добавить меньше чем одного день на обработку. Как это сейчас в inet сделано. Кому-нибудь нужна возможность обработать только один час?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подневная обработка логов cdr.
СообщениеДобавлено: 13 май 2015, 17:15 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
У нас требуют сделать обработку и меньше часа. Я говорю что это невозможно и т.д. и т.п.
А вы хотите раз в день.
Есть тарифы аля авансовые. Чтобы сильно в минус не ушел.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подневная обработка логов cdr.
СообщениеДобавлено: 13 май 2015, 17:33 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Для runtime обсчета можно что-то придумать..Даже меньше часа . Тут речь идет о другом немного, о переобработке задним числом, когда что-то пошло не так. Т.е разделяем ситуацию
1) Появились данные за новый час (минуту, или вообще появился новый звонок в конце лога). Тогда будет как бы runtime для логов. Тут кстати надо подумать как еще.
2) Что-то поломалось и нужно задним числом исправить. Или задним числом добавить абонента . Вот тут хотим не меньше дня обрабатывать. Иначе нам нужно хранить на каждый час много дополнительной информации в базе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подневная обработка логов cdr.
СообщениеДобавлено: 13 май 2015, 18:01 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Аааа... В таком случае да. Если задним числом то я обычно обрабатываю днями/месяцами.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подневная обработка логов cdr.
СообщениеДобавлено: 13 май 2015, 20:37 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Если уж переобрабатывать, то обычно не парит больше логов в загрузку добавить, чем нужно


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подневная обработка логов cdr.
СообщениеДобавлено: 19 май 2015, 17:51 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Итак пока схема обработки логов такая. Делается класс, назовем его Mediator. Он состоит из 2-х частей.

1) Метод getLogsForHour( Date hour, .. ) - получить логи за конкретный час. Используется при ручном добавлении обработки логов. Добавлять можно минимум день, но он все равно будет вызывать этот метод для каждого часа этого дня. Тут Mediator сам решает какие записи к какому часу относить. Причем он должен это делать однозначно.Определять может как угодно , многие АТС выгружают данные с именами файлов, в которых есть время в самом имени. Могут на основе время старта звонка относить к какому-то логу. Тут все отдается на откуп того, кто этот класс пишет. С нашей стороны будет реализация Mediator-а для старого формата логов Phone.

2) Метод getNewRecords(...) - выдает новые записи, с разбивкой по часам(так как в общем случае там могло скопиться за несколько часов) которые появись с момента предыдущего запуска метода . Как бы runtime. Периодичность запуска будет настраиваться. Тут Mediator будет сам решать опять же какие записи будут считаться новыми, и отнесение к конкретному часу должно быть согласовано с первым пунктом. Записи не должны дублироваться, т.е нельзя отдавать одну и ту же запись 2 раза. Вообще этот метод можно не делать, тогда не будет runtime обработки.

Тут остается вопрос , как быть с уже готовыми конвертерами для модуля phone. С 1-м пунктом тут нет проблем, но как вот поддержать старый режим когда просто конвертер раз в час запускался пл cron-у, создавал лог за новый час добавлял его на загрузку в DataLoader. Тут мы можем сделать дефолтную реализацию Mediator-а, которая будет искать логи старого формата и после обработки переименовывать . Т.е появился новый час, мы его распарсили, отдали записи из него и переименовали файл(добавили как-то суффикс например). При этом переобработка вручную из 1-го пункта будет учитывать все файлы и переименованные в том числе (или наоборот только переименованные).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подневная обработка логов cdr.
СообщениеДобавлено: 21 май 2015, 07:39 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
А эти методы будут вызываться по планировщику или по запросу модулем Voice?
getNewRecords() сам должен вести учёт id последней отданной записи?
А что, если будет запрос getLogsForHour для часа новых записей, а getNewRecords для них ещё не вызывался? Должен ли я пометить у себя эти записи как "отданные"?
Будет ли метод сброса id последней записи для getNewRecords ?
Ну т.е. не очень пока понятен механизм работы getNewRecords.
Мне кажется, информация о том, какие звонки обработаны, а какие ещё нет ближе к самому модулю Voice.

Кстати, id для CDR сделали?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подневная обработка логов cdr.
СообщениеДобавлено: 21 май 2015, 12:37 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Cromeshnic писал(а):
А эти методы будут вызываться по планировщику или по запросу модулем Voice?

По запросу приложения(accounting) для модуля Voice.
Cromeshnic писал(а):
getNewRecords() сам должен вести учёт id последней отданной записи?

Да, он может запоминать позицию в файле до которой он обработал лог, может переносить обработанные файлы в другие папки..может сохранять что-то в базу данных\, может в файлик.
Cromeshnic писал(а):
А что, если будет запрос getLogsForHour для часа новых записей, а getNewRecords для них ещё не вызывался? Должен ли я пометить у себя эти записи как "отданные"?

Вопрос интересный. По идее, да нужно пометить.
Cromeshnic писал(а):
Будет ли метод сброса id последней записи для getNewRecords ?
Ну т.е. не очень пока понятен механизм работы getNewRecords.

А зачем методе сброса id ? Вроде как Mediator за ним следит, а приложение про него ничего не знает. А если вообще нет id? Если например это просто в файл данные льются непрерывно в файл текстовый один и периодически он очищается ( у нас на wiki вроде md110 так работает) или разными файлики ama (si2000) падают по несколько звонков через каждые несколько минут.
Cromeshnic писал(а):
Мне кажется, информация о том, какие звонки обработаны, а какие ещё нет ближе к самому модулю Voice.

Да вот не уверен. Слишком тут много зависит от АТС - как она отдает данные.
Cromeshnic писал(а):
Кстати, id для CDR сделали?

Сделаем, это есть в TODO и не сложно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подневная обработка логов cdr.
СообщениеДобавлено: 21 май 2015, 13:10 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
stark писал(а):
Cromeshnic писал(а):
Мне кажется, информация о том, какие звонки обработаны, а какие ещё нет ближе к самому модулю Voice.

Да вот не уверен. Слишком тут много зависит от АТС - как она отдает данные.


В смысле, какие звонки Accounting считает, что обработаны, а какие - ещё нет. Речь как раз о пересчётах в текущем месяце или случае выше, когда логи за час берутся раньше, чем реалтайм-обработка их же.
Т.е. вопрос в том, как будет сочетаться обработка логов realtime с переобработкой в этом же месяце. Поэтому и возник вопрос сброса метки "отданных" звонков, например.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подневная обработка логов cdr.
СообщениеДобавлено: 21 май 2015, 14:20 
Не в сети
Разработчик

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

Да вот не уверен. Слишком тут много зависит от АТС - как она отдает данные.


В смысле, какие звонки Accounting считает, что обработаны, а какие - ещё нет. Речь как раз о пересчётах в текущем месяце или случае выше, когда логи за час берутся раньше, чем реалтайм-обработка их же.
Т.е. вопрос в том, как будет сочетаться обработка логов realtime с переобработкой в этом же месяце. Поэтому и возник вопрос сброса метки "отданных" звонков, например.



Для Accounting все что пришло в getNewRecords - это новые звонки. Mediator сам должен согласовывать getLogsForHour и getNewRecords, Мы можем в Accounting поддержать id звонка( CDR_ID), если Mediator его будет передавать. Тогда из getNewRecords будут игнорироваться звонки с существующим CDR_ID. Если Mediator его не будет передавать, то за все отвечает он.


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

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


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

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


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

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