Child pages
  • Дневные, месячные периодически процессы

Skip to end of metadata
Go to start of metadata

Периодические процессы

За выполнение месячных и дневных периодически процессов отвечает программа /usr/abills/libexec/periodic

Примеры использования

Дневной периодик

/usr/abills/libexec/periodic daily

Дневные периодические процессы, система выполняет дневные периодические действия по всем модулям системы.

Порядок выполнения:

  • Установка кредитов

  • Обнуление скидок

  • Перенос должников по группам

  • Выполнение расписания

    • изменении тарифных планов

    • Установка статусов блокировки

    • выполнение других команд

  • Функции модулей

    • дневная абон. плата

    • управление оборудованием

  • Отправка E-mail отчётов администратору системы

  • Отправка E-mail предупреждений пользователям о израсходованном балансе


Месячный периодик
/usr/abills/libexec/periodic monthly

Месячный периодический процесс. Выполнение месячных процессов системы по всем подключенным модулям

  • Функции модулей

    • месячная абон. плата

    • месячная распределённая абон. плата (снимается каждый день)

    • управление оборудованием

  • Отправка E-mail отчётов администратору системы

  • Отправка E-mail предупреждений пользователям о израсходованном балансе

  • Резервное копирование базы данных

Чтобы отключить создание бакапа при месячном периодике запускайте команду со следующими параметрами

Месячный периодик без бекапа
/usr/abills/libexec/periodic monthly SKIP_MODULES=backup

Архивация базы

/usr/abills/libexec/periodic backup

Выполнить резервное копирование 
При выполнении бекапа система пропускает таблицы:

ipn_traf_detail

s_detail

ipn_log_backup

ipn_unknow_ips

errors_log

_old _YYYY_MM_DD


Аргументы

BACKUP_IGNORE='table1,table2'Список игнорируемых таблиц

Запуск расписания принудительно

/usr/abills/libexec/periodic daily SHEDULE=1 DATE=xxxx-xx-xx

Автоматическое выполнение

Вносим в cron периодические процессы /etc/crontab

 */5  *      *    *     *   root   /usr/abills/libexec/billd -all
 1     0     *    *     *   root    /usr/abills/libexec/periodic daily
 1     1     *    *     *   root    /usr/abills/libexec/periodic monthly

Обратите внимание, что дневной периодический процесс желательно запускать в 00:00:00, а месячный через час 01:00:00. Это делается для того, чтобы успели отработать все переключения тарифных планов и другие действия планировщика заданий. Месячный периодик запускается каждый день так как он следит за месячной распределённой абонплатой, месячными периодическими снятиями с произвольными датами и делает бекап.

Аргументы программы

Дополнительные параметры

DATE=2005-10-01Дата, за которую нужно выполнить периодические процессы
NO_USERS_WARNINGSНе оправлять предупреждений пользователям о израсходованном депозите
MODULES=[modules_list,…]Выполнить периодический процесс только для определённых модулей системы
SKIP_MODULES=[modules_list]Не выполнять программу для определённых модулей системы
NO_ADM_REPORTНе оправлять администратору отчёт о работе системы
FNЗапускать только определённую функцию
SHEDULEВыполнить только расписания
SET_FULL_CREDITУстановка кредита абонентам на сумму всех услуг акаунта, для компаний на сумму всех услуг абонентов компании
FULL_CREDIT_PERIODУстановить время действия полного кредита в днях
LOGINВыполнить периодический процесс только для определённого логина или логинов, логины нужно указывать через запятую
DEBUG=[0..7]

Режим отладки 0-7

При уровне дебага выше 7 система показывает действия на выполнение но не производит начисление абонплаты

Установка кредита на сумму всех услуг

Кредит устанавливается на сумму всех услуг предоставляемых абоненту.

Данный кредит устанавливается исходя из следующий критериев:

  • только активным абонента (статус акаунта: активно)

  • если поле кредит не содержит другого значения кредита

  • если сумма на счету меньше суммы общего кредита абонента

Для компаний кредит устанавливается в размере суммы всех используемых услуг абонентами компании.
По умолчанию кредит предоставляется на неограниченный срок. Если нужно установить срок кредита нужно использовать параметр FULL_CREDIT_PERIOD. При использовании параметра FULL_CREDIT_PERIOD дата начала кредита считается датой выполнения программы, если другое не указано в аргументах 
Пример использования
Установка кредита на 10 дней

/usr/abills/libexec/periodic SET_FULL_CREDIT FULL_CREDIT_PERIOD=10

Параметры

UIDВыполнить только для определённого UID
LOGINВыполнить только для определённого логина
COMPANY_IDВыполнить только для определённой компании. 
Только для компаний COMPANY_ID='>0'
DEPOSIT="<10"Фильтрация по депозитам для услуги полный кредит
GID="1;2;3"Фильтрация по группам для услуги полный кредит


  • No labels