Название: Начало нового месяца Отправлено: tramX от 01 Сентября 2009, 02:38:34 Здравствуйте. Закончился Август и начался Сентябрь, в билинге ни каких изменений не произашло. Со счета деньги у клиентов не сняло на размер абонплаты, никого не заблокировало. Почему? Как настроить чтоб каждый месяц снималась абонплата?
Название: Re: Начало нового месяца Отправлено: VitalVas от 01 Сентября 2009, 06:59:27 перечитай мануал внимательней, там есть об етом.
Название: Re: Начало нового месяца Отправлено: Fredik от 01 Сентября 2009, 08:27:58 с билингом ишла дока
блок "Закрытие месяца" открываеш docs/work.html#month и читаеш там все написано. Цитировать Расчетный период системы NoDeny - месяц. C 1 по 31 число происходит накопление трафика в учетной записи клиента, после чего вступает в действие новый тарифный план, для которого необходимо трафик учитывать с нуля, поэтому при наступлении нового месяца, должны быть выполнены следующие действия: - формирование платежа-снятия согласно пакета тарификации клиента и потребленного им трафика; - запись данных в архив; - обнуление текущего трафика; - перевод клиентов на заказанные пакеты. Эти действия выполняет скрипт «перехода на новый месяц» new_month.pl. Вы должны прописать автоматический запуск new_month.pl в начале каждого месяца, например, 1го числа в 00:00, но никак не в конце - к примеру, 31го числа в 23:59 нельзя. Автоматический запуск можно оформить через crontab: server_www# cd /usr/local/nodeny server_www# ee crontab.txt и введите: 0 0 1 * * /usr/bin/perl /usr/local/nodeny/new_month.pl Поставьте crontab.txt в задания: server_www# crontab crontab.txt Текущие задания в crontab-е можно увидеть: server_www# crontab -l Должна отобразиться строка, введенная ранее в crontab.txt Первый раз запустите new_month.pl вручную: server_www# cd /usr/local/nodeny server_www# perl new_month.pl После отработки скрипта, изучите логи в файле NEW_MONTH_LOG_X.XXXX и NEW_MONTH_ERROR_X.XXX. Последний хранит лог ошибок и в обычном случае он не должен существовать, т.е не должно быть ни одной ошибки. Поскольку операция перехода на новый месяц ответственная, вы должны убедиться, что все клиенты были переведены. Если в процессе перевода возникнет ошибка, например, станет недоступна БД либо иной сбой, то скрипт new_month.pl попытается восстановить соединение. Если же это не удастся, то скрипт запишет в NEW_MONTH_ERROR_X.XXX сообщение где произошла ошибка. Когда при изучении данного лога, вы обнаружите, что не все клиенты были переведены - запустите скрипт снова - он не будет повторно переводить клиентов, которые уже прошли эту процедуру. Кроме того, по окончании работы, new_month.pl записывает соответствующеее итоговое событие в БД, которое вы можете увидеть в админке. Как было сказано выше, для каждого клиента формируется платеж-снятие согласно пакета тарификации и потребленного им трафика. Хотя скрипт запускается в начале месяца, записи о снятиях проводятся предудущим месяцем - за 5 секунд до его окончания. Это необходимо для корректной отчетности. Перед «переходом на новый месяц» будет не лишним сделать резервную копию базы данных. Рекомендуется запускать new_month.pl как можно ближе к 00:01 первого числа месяца. При наступлении 1го числа, трафик продолжает считаться и если осуществить поздно переход, то трафик с начала месяца до момента запуска скрипта будет считаться трафиком за прошлый месяц. Таким образом, будет некоторое несоответствие в данных клиента. Например, абонент скачал 50Мб в январе, наступило 1 февраля, клиент продолжает загружать из интернета информацию. В 4 часа ночи запускается скрипт перехода на новый месяц и считает что клиент загрузил в январе 55Мб (5мб успел загрузить за 4 часа в феврале). Таким образом, с клиента снимутся деньги за 55Мб, после чего трафик обнулится. В статистике клиент будет видеть что 1-го февраля он загрузил 5мб, но на титульной странице будет отображаться 0Мб - т.к. 5Мб уже засчитаны в предыдущий месяц. То есть чем позже будет запущен скрипт new_month.pl, тем больше будет разница в суточных и общих данных. Запускайте new_month.pl в 00:01 первого числа каждого месяца и такой проблемы у вас не будет. Если же по каким-либо причинам вам необходимо запустить скрипт не первого числа, то при запуске используйте ключ t: server_www# perl new_month.pl -t Условия при которых с наступлением нового месяца не производится списание денежных средств со счета клиента: 1) Если клиент находится в группе, в характеристиках которой указано не производить списание средств (например группа «удаленные») 2) Если параметр клиента «день начала потребения услуг» отрицательный - означает, что клиент ни одним из его ip не авторизовался и не потреблял интернет никогда с момента создания его данных Название: Re: Начало нового месяца Отправлено: gonhik от 04 Июля 2011, 21:34:30 Здравствуйте, запустил скрип new_month.pl -t (делал все по мануалу) но в результате в NEW_MONTH_ERROR записало вот что - DBD::mysql::db do failed: Duplicate entry '0-6-2011' for key 1 at /usr/local/nodeny/new_month.pl line 118.
DBD::mysql::db do failed: Duplicate entry '0-6-2011' for key 1 at /usr/local/nodeny/new_month.pl line 121. и что теперь делать ? ??? Название: Re: Начало нового месяца Отправлено: 0xbad0c0d3 от 04 Июля 2011, 23:40:20 1. Удалить дубликаты.
2. При появлении дубликатов -- думать дальше Название: Re: Начало нового месяца Отправлено: versus от 05 Июля 2011, 17:19:48 Репейр бзе данных сделай, тут на форуме есть как делать.
Подключить сервер с упсу, желательно не вырубать его с кнопки. Вобщем это проблема базы данных.. Вот такой вот мускул чувствительный Название: Re: Начало нового месяца Отправлено: dzensys от 22 Июля 2011, 02:32:20 Здравствуйте, запустил скрип new_month.pl -t (делал все по мануалу) но в результате в NEW_MONTH_ERROR записало вот что - DBD::mysql::db do failed: Duplicate entry '0-6-2011' for key 1 at /usr/local/nodeny/new_month.pl line 118. http://forum.nodeny.com.ua/index.php?topic=1125.0DBD::mysql::db do failed: Duplicate entry '0-6-2011' for key 1 at /usr/local/nodeny/new_month.pl line 121. и что теперь делать ? ??? Название: Re: Начало нового месяца Отправлено: gonhik от 01 Сентября 2011, 00:07:48 Здравствуйте, после 00.00 01.09.2011 в клиентов не сняло денег со счета и не обнулило трафик , скрипт запустил даже в ручную несколько раз, появился файл NEW_MONTH_LOG_X.XXXX и NEW_MONTH_ERROR_X.XXX но там пусто, что делать ? ???
Название: Re: Начало нового месяца Отправлено: versus от 01 Сентября 2011, 12:46:40 1. Восстановить бэкап базы данных
2. Запустить скрипт перехода на след месяц. 3. Если не отработает, то представить более подробные данные. Название: Re: Начало нового месяца Отправлено: gonhik от 01 Сентября 2011, 23:49:39 :-[ и так после проделанных (выше указанных действий) не чего не изменилось, а в логах добавилось вот такое сообщение
Цитировать Can't call method "prepare" on an undefined value at nodeny.pl line 352. и теперь при нажатие на кнопку "статистика" пишет DBI connect('database=bill;host=localhost;mysql_connect_timeout=6;','bill_kernel',...) failed: Unknown database 'bill' at nodeny.pl line 488 DBD::mysql::db do failed: Table 'bill.users' doesn't exist at nodeny.pl line 512. DBD::mysql::st execute failed: Table 'bill.dblogin' doesn't exist at nodeny.pl line 1313. DBD::mysql::st execute failed: Table 'bill.dblogin' doesn't exist at nodeny.pl line 1313. Цитировать Таблица traf_info, содержащая данные о ходе записи трафика, пуста. Проверьте запущено ли ядро NoDeny. и как быть теперь ?Название: Re: Начало нового месяца Отправлено: Rico-X от 02 Сентября 2011, 06:13:36 Ну судя из лога, очень напрашивается вопрос, существует ли база bill?
Название: Re: Начало нового месяца Отправлено: ser970 от 02 Сентября 2011, 07:06:04 :-[ и так после проделанных (выше указанных действий) не чего не изменилось, а в логах добавилось вот такое сообщение бекап етсь?Цитировать Can't call method "prepare" on an undefined value at nodeny.pl line 352. и теперь при нажатие на кнопку "статистика" пишет DBI connect('database=bill;host=localhost;mysql_connect_timeout=6;','bill_kernel',...) failed: Unknown database 'bill' at nodeny.pl line 488 DBD::mysql::db do failed: Table 'bill.users' doesn't exist at nodeny.pl line 512. DBD::mysql::st execute failed: Table 'bill.dblogin' doesn't exist at nodeny.pl line 1313. DBD::mysql::st execute failed: Table 'bill.dblogin' doesn't exist at nodeny.pl line 1313. Цитировать Таблица traf_info, содержащая данные о ходе записи трафика, пуста. Проверьте запущено ли ядро NoDeny. и как быть теперь ?походу дело в мускуле - либо залочены таблицы либо их просто нет. если есть ссн давай гляну. аська. Название: Re: Начало нового месяца Отправлено: gonhik от 02 Сентября 2011, 07:29:35 бекап есть , запустился все нормально, сделал как написано в мануале,
Цитировать походу дело в мускуле - либо залочены таблицы либо их просто нет. а как воете можно исправить ?Название: Re: Начало нового месяца Отправлено: versus от 02 Сентября 2011, 09:26:56 бекап есть , запустился все нормально, сделал как написано в мануале, Цитировать походу дело в мускуле - либо залочены таблицы либо их просто нет. а как воете можно исправить ?Я понимаю что в гугле вас забанили, поэтому помогаю чем могу: Цитировать http://www.mysql.ru/docs/man/LOCK_TABLES.html Но судя по ошибке, все же хотелось бы узнать а база данных bill вобще существует в СУБД ? Название: Re: Начало нового месяца Отправлено: gonhik от 04 Сентября 2011, 03:35:47 Всем огромное спасибо, решение проблемы вот тут forum.nodeny.com.ua/index.php?topic=373.0
Название: Re: Начало нового месяца Отправлено: gonhik от 04 Сентября 2011, 03:59:04 И все таки после запуска perl new_month.pl -t в клиентов не происходит обнуление трафика не меняется тариф и не блокирует не плательщики, в логах файлов NEW_MONTH_LOG_X.XXXX и NEW_MONTH_ERROR_X.XXX. пусто.
|