BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 23 май 2024, 07:44

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




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: 4.6 Тарификация 1-го часа месяца.
СообщениеДобавлено: 01 сен 2010, 07:29 
Не в сети

Зарегистрирован: 06 май 2009, 05:25
Сообщения: 102
Откуда: г. Амурск
Карма: 10
Сервер: 4.6-675.
IPN: 4.6-246.

Ситуация.
Модуль работает почти "в реальном времени" - NetFlow лог каждые 2 минуты; обсчет логов (планировщик) - каждые 2 минуты. Задержка обсчета получается до 10 минут. Терпимо.

Проблема.
Первый час каждого месяца много клиентов уходят в "большой минус".
Оказалось, что в течении этого часа задача "Обсчет логов IPN" трафик за этот час (первый в месяце) не обсчитывает. При этом, сам трафик считается. Просто не тарифицируется. Тарифицируется этот первый час только позже. В результате клиент "в большом минусе".
В описании следующее:
"При выполнении задачи начисления задача берет предыдущий минуте выполнения час и обсчитывает логи за этот месяц. Сделано это для того, чтобы можно было реализовать "Последний обсчёт" трафика за месяц, после обработки логов за последний час месяца."

Перезапуск БГБ сервера на первых минутах месяца ничего не дает.
Бог с ним, пусть пересчитывает предыдущие часы/дни/месяцы. Но текущий час надо обсчитать! И вот как этого добиться?..

Хелп плиз...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 4.6 Тарификация 1-го часа месяца.
СообщениеДобавлено: 02 сен 2010, 11:58 
Не в сети

Зарегистрирован: 06 май 2009, 05:25
Сообщения: 102
Откуда: г. Амурск
Карма: 10
Ау!

Так все-же, как обсчитать трафик за первый час месяца, если этот час еще не кончился?
Хоть скриптом, ей-богу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 4.6 Тарификация 1-го часа месяца.
СообщениеДобавлено: 03 сен 2010, 10:57 
Не в сети

Зарегистрирован: 06 май 2009, 05:25
Сообщения: 102
Откуда: г. Амурск
Карма: 10
ОК, если такое поведение заложено в модуль IPN, то как скриптом получить наработку в МБ и занести нужную наработку в рублях?
Пусть стоимость фиксированная.

ОК, так и буду делать наверное. Трафик считается исправно, можно взять прямо из базы.
Пример:
SELECT sum(`amount`) AS `bates` FROM `ipn_contract_data_1_201009` WHERE `cid` =3106 AND `sid` =1

Не могу понять, как зачислить наработку по определенной услуге...

Упс... Разобрался.
BalanceUtils.setContractAccount(int cid, java.util.Date time, int sid, float summa) - мне вполне подойдет.

Идея такая:
1. В первый час месяца наработку стандартной задачей "Обсчет логов IPN" не делать. Т.е. задать часы выполнения 1-23.
2. Добавить задачу "Обсчет логов IPN" каждый месяц, 1 число, 0 час, 58 минута.
3. Добавить скрипт на договоры. Выполнение по расписанию: 1 число, 0 часов, 2-4-6-8-....56 минуты.

Логика работы скрипта:
Если тариф с фиксированной оплатой (эти данные есть в общей библиотеке у меня), то - на выход.
Берем наработку в байтах из нужной таблицы ipn_contract_data_***.
Считаем наработку в рублях. Цена зависит от тарифа - опять в общей библиотеке.
Устанавливаем наработку по нужной услуге.

Хм... А если "ушел в минус"? Еще и лимит учитывать...
Просто обновление баланса закроет шлюз если надо?
Или этим занимается задача "Проверка шлюзов IPN"?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 4.6 Тарификация 1-го часа месяца.
СообщениеДобавлено: 21 сен 2010, 19:49 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Yagoda писал(а):
ОК, если такое поведение заложено в модуль IPN, то как скриптом получить наработку в МБ и занести нужную наработку в рублях?
Пусть стоимость фиксированная.


Да такое поведение заложено в модуль IPN. Наверное надо на границе месяца считать оба часа - и предыдущий и текущий . Добавил в TODO

Yagoda писал(а):
ОК, так и буду делать наверное. Трафик считается исправно, можно взять прямо из базы.
Пример:
SELECT sum(`amount`) AS `bates` FROM `ipn_contract_data_1_201009` WHERE `cid` =3106 AND `sid` =1

Не могу понять, как зачислить наработку по определенной услуге...

Упс... Разобрался.
BalanceUtils.setContractAccount(int cid, java.util.Date time, int sid, float summa) - мне вполне подойдет.

Идея такая:
1. В первый час месяца наработку стандартной задачей "Обсчет логов IPN" не делать. Т.е. задать часы выполнения 1-23.
2. Добавить задачу "Обсчет логов IPN" каждый месяц, 1 число, 0 час, 58 минута.
3. Добавить скрипт на договоры. Выполнение по расписанию: 1 число, 0 часов, 2-4-6-8-....56 минуты.

Логика работы скрипта:
Если тариф с фиксированной оплатой (эти данные есть в общей библиотеке у меня), то - на выход.
Берем наработку в байтах из нужной таблицы ipn_contract_data_***.
Считаем наработку в рублях. Цена зависит от тарифа - опять в общей библиотеке.
Устанавливаем наработку по нужной услуге.

Хм... А если "ушел в минус"? Еще и лимит учитывать...
Просто обновление баланса закроет шлюз если надо?
Или этим занимается задача "Проверка шлюзов IPN"?


Уход в минус проверяет задача "Проверка шлюзов IPN" по балансу и лимиту.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 4.6 Тарификация 1-го часа месяца.
СообщениеДобавлено: 21 сен 2010, 20:02 
Не в сети
Разработчик

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


Мы наверное все-таки подумаем над проблемой границы часа и исправим.

А в новом модуле inet, где все будет оперативно не будет такой проблемы .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 4.6 Тарификация 1-го часа месяца.
СообщениеДобавлено: 01 окт 2010, 17:49 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Добавлен параметр hour.minus для задачи обсчета логов.
Чтобы на брало предыдущий час , нужно поставить
Код:
hour.minus=0


Нужно создать еще одну задачу с таким параметром и запускать ее в первый час каждого месяца


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

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


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

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


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

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