Улучшить код Python (multiprocessing, asyncio, threading) + docker

  • Опубликовано 1 год назад
  • Просмотры 8
  • Закончить проект

Описание

Улучшить код Python:
1. Код получает параметр при запуске – % загрузки процессора. По умолчанию 50% и его использует в работе;
2. Добавить обработку нескольких задач одновременно (пока не загрузим процессор до целевого значения)
3. Код загружает "модели" – при сбое загрузки или запуска модели – откатываемся к предыдущей версии
4. "Повторное" использование загруженных в память моделей (ввиду медленной инициализации)
5. Сохранить весь код в одном файле
6. Корректное отображение текущего состояния с учётом многопоточности
7. В случае "зависания" потока – через ~ час его принудительно завершать
8. Выгрузка неиспользуемых моделей из памяти через час неактивности
9. Для docker образа если сервер не передаёт новых задач в течение ХХ минут – останов и выгрузка всего
10. Временные файлы (например загруженные аудио) – аккуратно удалять (с учётом многопоточности)
11. В сокет без надобности запросы не отправляем.

Комментарий: сервер на запрос "next" в течение нескольких секунд возвращает ID следующей задачи. Если не отвечает – задачи нет (как появится сервер сам посылает новую команду без запроса со стороны клиента).
Образ для ПК должен работать постоянно и в случае сбоев восстанавливаться.
Контролировать использование оперативной памяти: vosk может потребить много ресурсов
Socket Сервер для тестирования собрать самостоятельно (логика простая: получив команду next выдаёт новую задачу (или не выдаёт),также выдаёт новую задачу сразу после коннекта (если есть)

Опубликовано 1 год назад