Запуск модуля (module_sdk.app)
AppModule
from module_sdk.app.app import AppModule
AppModule.app_create_and_do_py(custom_py_function)
Главная точка входа SDK. Запускает HTTP-сервер и выполняет пользовательскую функцию.
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
custom_py_function | Callable[[], None] | Функция без аргументов, содержащая логику сбора данных |
Поведение:
-
Вызывает
setup_logging()-- настройка уровня логирования из envLOG_LEVEL(по умолчаниюINFO) -
Запускает HTTP-сервер (waitress + connexion) в отдельном потоке на порту
config.additional.port -
Переводит статус в
RUN -
Вызывает
custom_py_function() -
Если в storage есть ассеты -- создает финальный пакет
-
Если есть неподтвержденные пакеты -> статус
ASSETS_READY, иначе ->FINISH -
При исключении -> статус
ERROR, исключение логируется
Пример:
def my_collector():
# Ваша логика сбора данных
pass
if __name__ == "__main__":
AppModule.app_create_and_do_py(my_collector)
!!! quote
HTTP-сервер продолжает работать после завершения custom_py_function -- Keeper забирает данные через /scan/status и затем отправляет /scan/shutdown.
setup_logging()
from module_sdk.app.app import setup_logging
Настраивает logging.basicConfig с форматом %(asctime)s - %(name)s - %(levelname)s - %(message)s. Уровень берется из LOG_LEVEL env (по умолчанию INFO). Вызывается автоматически из app_create_and_do_py.