forum.bitel.ru
http://forum.bitel.ru/

Параллельное выполнение переобсчетов
http://forum.bitel.ru/viewtopic.php?f=5&t=3526
Страница 1 из 1

Автор:  Cromeshnic [ 03 фев 2010, 15:32 ]
Заголовок сообщения:  Параллельное выполнение переобсчетов

Возникла проблема при переобсчете PPPoE-сессий за январь.

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

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

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

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

Автор:  Администратор [ 02 мар 2010, 16:07 ]
Заголовок сообщения:  Re: Параллельное выполнение переобсчетов

Да, проблема действительно могла возникнуть из-за этого. Насчёт защиты на уровне кода подумаем.

Автор:  vdd [ 02 мар 2010, 20:13 ]
Заголовок сообщения:  Re: Параллельное выполнение переобсчетов

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

Автор:  Администратор [ 02 мар 2010, 20:15 ]
Заголовок сообщения:  Re: Параллельное выполнение переобсчетов

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

Автор:  snark [ 02 мар 2010, 21:02 ]
Заголовок сообщения:  Re: Параллельное выполнение переобсчетов

думаю что подобную "защиту от дурака" проще реализовать административными методами, т.к. переобсчет может занять от секунды и выше - в зависимости от объема переобсчитываемого трафика
ув. разработчики, для избежания подобных ситуаций, например если запущен переобсчет трафика пока не будет отправлено мыло с уведомлением об окончании проще всего сбрасывать повторный запуск уже запущенной задачи ну или ставить ее в очередь ... главное чтоб параллельно нельзя было одинаковые задачи запускать

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/