Ответ на тестовое задание:
Сервис загрузки и парсинга текстовых файлов
- Должна быть форма загрузки файла
- Файлы могут быть большими (несколько терабайт), поэтому необходимо реализовать асинхронную обработку файлов (например, с помощью Celery или иной библиотеки)
- После запуска процесса (это может быть отправка формы, нажатие на кнопку запуска и т.д.), должен отобразиться прогресс загрузки файла и его обработки
- При перезагрузке страницы приложение должно понимать, что обработка в процессе и возобновлять отображение прогресса (каждый процесс должен иметь уникальный URI, по которому можно отслеживать его состояние)
- В качестве парсера использовать подсчёт количества символов в файле
- Значение имеют алгоритмы, документация, тесты и PEP8
- Использование web-фреймворка и дополнительных библиотек не имеет особого значения
Для запуска проекта необходим docker и docker-compose
Запуск (остановить можно через Ctrl+C):
docker-compose up
Удаление контейнеров, сети, томов:
docker-compose down -v
Запуск тестов:
docker-compose run backend test text_parse
Также существует файл run_tests.sh
в корне, который делает тоже самое.