BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 03 июл 2025, 16:50

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
СообщениеДобавлено: 03 фев 2010, 15:32 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Возникла проблема при переобсчете PPPoE-сессий за январь.

Последовательность действий:

- Пересчитали netflow по источникам в модуле DialUp, письмо с уведомлением об окончании пересчета пришло
- Запустили переобсчет сессий за январь по всем договорам. По ошибке запустили его два раза с разницей в 3 минуты. Оба пересчета выполнялись параллельно, письма пришли почти одновременно.
- Пересчитали максимальные трафики
- При выставлении счетов обнаружили, что у многих клиентов, имеющих тарифы с предоплаченным пакетом трафика и платным трафиком за превышение пакета, в наработке выставились слишком большие суммы за превышение.
- Ещё раз запустили переобсчет сессий, затем максимальные трафики - всё стало нормально

Тот факт, что пересчет в первый раз был запущен параллельно мы сначала не заметили.

Вопросы: Действительно такая проблема возникла из-за параллельного обсчета сессий? Как такое возможно и не нужно ли придумать защиту от этого на уровне кода?


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Да, проблема действительно могла возникнуть из-за этого. Насчёт защиты на уровне кода подумаем.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 мар 2010, 20:13 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
Вот ведь неоднократно писали, что процессы, запускаемые шедулером должны иметь механизмы типа мутексов, что бы исключить нежелательные наложения... Что "запустите второй процесс на час позже" - это мина замедленного действия, а не замена механизмам синхронизации... :(


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Да понятно так-то, только там проблема, что обсчёт может быть как по договорам А,Б,С параллельно по А и параллельно полный. А ещё параллельно могут быть переобсчёты в разных модулях, при этом они все правят общий баланс.. В общем, подумаем.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 мар 2010, 21:02 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
думаю что подобную "защиту от дурака" проще реализовать административными методами, т.к. переобсчет может занять от секунды и выше - в зависимости от объема переобсчитываемого трафика
ув. разработчики, для избежания подобных ситуаций, например если запущен переобсчет трафика пока не будет отправлено мыло с уведомлением об окончании проще всего сбрасывать повторный запуск уже запущенной задачи ну или ставить ее в очередь ... главное чтоб параллельно нельзя было одинаковые задачи запускать


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

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


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

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


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

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