API-диспечер на питоне aiohttp mysql redis Python
Написать на базе aiohttp Api-Диспечер распределяющий по устройствам и запускающий sh-команды
1. Прием команд:
На входе команды: bash-строка + уточняющие параметры:
-m1000 - память не меньше указанной
-v2000;-va;vn - доступ к видеокарте(любой,только AMD,Nvida) память видеокарты не меньше указанной
-d name; доступ к кластеру базы данных
-p - приоритет команды
-w - выполняем в режиме await
2 конфига: Конфиг подключенных устройств, Конфиг базы mysql для авторизации
2.1. Авторизация:
в конфиге: user,pass + level - если user='guest', то выполняем все приходящие запросы с level>=заданному
Создаем сессии
2.2. Создаем в redis стеки для каждого приоритета записываем туда приходящие команды
2. Оптимизатор:
Создает в редис стеки подключенных устройств
Опредеялет примерное время выполнения по логу
Сортирует (быстро выполнимые сначала) и распределяет с учетом текущей загруженности устройств
начиная с самого большого приоритета команды по подходящим устройствам
3. Исполнитель:
В цикле последовательно выполняет все команды на каждом устройстве
Логирует все команды длительностью выполнения выше указанной в конфиге устройств
для оптимизации распределения задач в дальнейшем.