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

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

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

Выберите способ верификации:

Обновите страницу после прохождения верификации.