Omega TV. Оптимизация API

Матеріал з NoDeny
Версія від 18:10, 30 жовтня 2024, створена Sv (обговорення | внесок) (Створена сторінка: Известна проблема некоторых сервисов ТВ: иногда их API отвечает медленно либо может быть недоступно. Это может привести к тому, что услуги в NoDeny будут завершаться дольше, ожидая ответы по API. Если будет очередь на завершение услуг, например в конце месяц...)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Известна проблема некоторых сервисов ТВ: иногда их API отвечает медленно либо может быть недоступно. Это может привести к тому, что услуги в NoDeny будут завершаться дольше, ожидая ответы по API. Если будет очередь на завершение услуг, например в конце месяца, то из-за задержек каждая последующая услуга будет завершена позже чем должна. В некоторых режимах тарификации это может влиять на стоимость услуги.

В данном модуле работа с API вынесена в отдельный поток. При установке/удалении услуги в NoDeny, вместо обращения к API, данные записываются в таблицу api_queue, благодаря чему тариф в NoDeny отключается/подключается мгновенно. Далее модуль ядра с названием api_queue периодически просматривает таблицу api_queue и выполняет API-запросы. Если запрос не выполнен, он будет повторен через время: сначала через минуту, потом через 5 минут, 30 минут, час и т.д. Количество попыток ограничено пятью. После последней неудачной попытки будет создан важный комментарий у абонента: megogo api error, method add_service.

Модуль ядра api_queue включается/выключается в админке. Однако рекомендуется запускать его отдельным потоком (см. запуск модулей ядра). Не забывайте, если вы только-только установили модуль, чтобы ядро увидело его, нужно просто, ничего не меняя, сохранить конфиг в админке.

Папка модуля omegatv_hop. Если у вас используется стандартный модуль OmegaTV, не забудьте его удалить (папку omegatv в modules) или отключить:

touch /usr/local/nodeny/modules/omegatv/no

Если вы используете обычный модуль комботарифов OmegaTV, то вам также необходимо его удалить или отключить:

touch /usr/local/nodeny/modules/omegatv_combo/no