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

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

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

просмотр истории страницы
{toc}

h1. Описание ядра биллинговой системы

Обработчик абонентов *worker* является одной из основных систем Carbon Billing 5 - именно он выполняет все финансовые расчеты, регистрирует состояния абонентов и добавляет данные которые в последствии обрабатывают другие системы, такие как отправка оповещений, события для отправки на оборудование.
Фактический эта служба - ядро биллинга.

В конфигурационном файле */app/asr_billing/cfg/config* за настройку воркера ядра отвечают следующие переменные:
{code}
app['worker.logfile']='/var/log/worker.log' - расположение лог-файла работы процесса
worker['balance_change.fork.cnt']='1' - количество потоков balance_change
worker['abonents.perfork.cnt']='15' - количество абонентов обрабатываемых в каждом потоке balance_change
app['worker.multiprocessing.enabled']='0' - включает многопоточность, по-умолчанию эта опция выключена
app['worker.enabled']='1' - включение воркера{code}
{warning}Установка *app\['worker.enabled'\]* в значение "*0*" равносильна отключению биллинга{warning}

h1. Многопоточность.


В обработчике абонентов реализована многопоточность с целью максимальной утилизации доступных ресурсов процессора и памяти: worker запускает несколько подпроцессов, каждый из которых обрабатывает определенное количество данных того или иного типа:
В ядре реализована функция многопоточности чтобы равномерно распределять нагрузку по ядрам процессора:
* *abonent_block* \- обрабатывает блокировки абонентов
* *usluga_abon_pay* \- списание абонентской платы и обработка статусов услуг
* *nas_stats* \- статистика NAS


{code}2018-07-02 12:07:22,778 - worker - worker - INFO - Fork daemons.abonent_block.0:9477
2018-07-02 12:07:22,782 - worker - worker - INFO - Fork daemons.usluga_abon_pay.0:9479
Количество потоков и обрабатываемых в каждом потоке данных описано в логике биллинга. Тем не менее, для *balance_change* оставлена возможность настройки.

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

По умолчанию опция многопоточности выключена в конфигурационном файле '*/app/asr_billing/cfg/config*':
Для включения многопоточного режима, установите опцию worker.multiprocessing.enabled в единицу и перезапустите ядро:
{code:title=Опция в /app/asr_billng/cfg/config}app['worker.multiprocessing.enabled']='1'{code}
{code:title=Перезапуск ядра}
chroot /app/asr_billing service worker restart{code}

{code} app['worker.multiprocessing.enabled']='0' {code}
h3. Настройка многопоточности *balance_change*

{info}

h2. Настройка многопоточности *balance_change*
Чтобы включить многопоточный режим работы, поставьте опцию *worker.multiprocessing.enabled в единицу:
{code}{code}
При это необходимо настроить потоки, например так:

В конфигурационном файле *asr_billing* за balance_change отвечают следующие настройки:
* На слабых платформах лучше не изменять настройки, а оставить стандартные: 110 абонентов в 1 потоке

h1. Отладка.

При возникновении каких-либо проблем в работе сервиса, можно выключить повышенное логирование в следующей переменной: