Worker (ядро биллинга)

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (9)

просмотр истории страницы
2018-07-02 13:13:00,383 - worker - worker - INFO - Processed in one iteration 7265 in 135.563s.
{code}
Один из подпроцессов balance_change обработал 717 операций за 112 секунд, ошибок в работе не произошло. Суммарное время итерации чуть менее 136 секунд. Всего обработано 7265 записей.
Суммарное время итерации чуть менее 136 секунд.

Описиние процессов:
* *abonent_block* - обработка блокировок абонента
* *usluga_abon_pay* \- списание абонентской платы и обработка статусов услуг
* *tarif_change* \- переключает тарифы
* *balance_change* \- обновляет состояния балансов
* *status_daemon* \- статусы абонентов
* *send_commands* \- обработка кеша: кеш абонентов, обработка флага modified в БД абонентов (что может говорить службе воркер о необходимости отправки команд на оборудование) , [сброс RADIUS-сессий по таймауту|CarbonBilling:Глобальные настройки биллинга и оператора]
* *pay_cards* \- обрабатывает пополнение баланса через карты оплаты
* *events* \- добавляет в стек команды для отправки на оборудование
* *csv_loading* \- обрабатывает загрузку платежей из csv
* *account_traf* \- регистрирует информацию по объёмам интернет-трафика
* *account_voip* \- обрабатывает зарегистрированный VoIP трафик
* *nas_stats* \- статистика NAS

h2. Включение и настройка

* При массовых [списаниях|Методы списания] (раз в месяц при типе списания "Ежемесячно" и каждый день при "Ежедневно равными долями в день" или "Ежедневно"), каждый процесс balance_change должен обработать не менее 1000 записей, при этом уложиться в 180 секунд;
* Общее количество потоков службы воркер не должно превышать количество потоков процессора, иначе это может замедлить работу всю системы;
* Мы рекомендуем оставлять запас ядер процессора для выполнения других задач на биллинга;
* На слабых платформах лучше не изменять настройки, а оставить стандартные: 110 абонентов в 1 потоке;
* В системе есть ограничение в *5000* записей на поток вне зависимости от настроек. настроек;
* В количесветве потоков стоит указывать простые числа - 2,3,5,7,11 и так далее;
* При расчёте количесва поток стоит учитывать только процессы, которые реально обрабатывают данные. Например, если вы не используете [карты оплаты|Карты оплаты], то поток их обработки *pay_cards* можно не учитывать в общем количестве потоков.

Описиние параметров каждого процесса:
|| Название процесса || Описание || Количестова потоков || Количество абонентов в потоке ||
| *abonent_block* | обработка блокировок абонента | abonent_block.fork.cnt | abonents.perfork.abonent_block |
| *usluga_abon_pay* | списание абонентской платы и обработка статусов услуг | usluga_abon_pay.fork.cnt | abonents.perfork.usluga_abon_pay |
| *tarif_change* | переключает тарифы | tarif_change.fork.cnt | abonents.perfork.tarif_change |
| *balance_change* | обновляет состояния балансов | balance_change.fork.cnt | abonents.perfork.balance_change |
| *status_daemon* | статусы абонентов | status_daemon.fork.cnt | abonents.perfork.status_daemon |
| *send_commands* | обработка кеша: кеш абонентов, обработка флага modified в БД абонентов (что может говорить службе воркер о необходимости отправки команд на оборудование) , [сброс RADIUS-сессий по таймауту|CarbonBilling:Глобальные настройки биллинга и оператора] | send_commands.fork.cnt | abonents.perfork.send_commands |
| *account_traf* | регистрирует информацию по объёмам интернет-трафика | account_traf.fork.cnt | abonents.perfork.account_traf |
| *account_voip* | обрабатывает зарегистрированный VoIP трафик | account_voip.fork.cnt | abonents.perfork.account_voip |
| *events* | добавляет в стек команды для отправки на оборудование | events.fork.cnt | abonents.perfork.events |
| *pay_cards* | обрабатывает пополнение баланса через карты оплаты | | |
| *csv_loading* | обрабатывает загрузку платежей из csv | | |
| *nas_stats* | статистика NAS | | |
h3. Особенности настройки:
h5. account_voip

В процессее обработки звонков *account_voip* возможно настроить только количество потоков *account_voip.fork.cnt*. Каждый поток будет обрабатывать *1000* звонков.

h1. Отладка