Megogo. Оптимизация API: відмінності між версіями

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку
Немає опису редагування
Немає опису редагування
Рядок 1: Рядок 1:
Известна проблема некоторых сервисов ТВ, когда их API отвечает довольно медленно.API запросы выполняются последовательно, и при большом их количестве это может занять много времени. И тогда тарифы в NoDeny завершаются на некоторое время позже, соответственно новые подключаются позже. В некоторых режимах тарификации это может влиять на стоимость услуги. Для Megogo не было замечено критических подтормаживаний, однако вы можете улучшить работу этим модулем.
Известна проблема некоторых сервисов ТВ, когда их API отвечает довольно медленно.API запросы выполняются последовательно, и при большом их количестве это может занять много времени. И тогда тарифы в NoDeny завершаются на некоторое время позже, соответственно новые подключаются позже. В некоторых режимах тарификации это может влиять на стоимость услуги. Для Megogo не было замечено критических подтормаживаний, однако вы можете улучшить работу этим модулем.


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


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

Версія за 15:50, 1 жовтня 2023

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

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

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

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

touch /usr/local/nodeny/modules/megogo/no

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

touch /usr/local/nodeny/modules/megogo_combo/no

После чего скачать и установить модуль комботарифов под megogo_hop: megogo_hop_combo.