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

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

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