Создать приложение на kotlin (желательно на Spring, желательно оформленное в Docker контейнер).
Если Kotlin не использовали - можно использовать Java (но работать придется на Kotlin).
Приложение:
-
Скачивает файлы с сервиса https://loremflickr.com (по ссылке вида https://loremflickr.com/320/240),
Рандомизируя размер картинки - числа в конце ссылки в промежутке от 10 до 5000
-
Сохраняет загруженные файлы в БД (PostgreSQL): информацию и содержимое файла в таблицу
FILES(ID, URL, SIZE, CONTENT_TYPE, CONTENT)
,
в таблице SUMMARY(FILES_COUNT, FILES_SIZE)
необходимо вести суммарную статистику по загруженным файлам.
При этом:
- Требуется обеспечить максимальную производительность процесса.
-
Необходимо обеспечить конкурентность (например с использованием coroutines).
-
Архитектура приложения/сервисов - определяется исполнителем.
-
Результат нужно сопроводить краткой инструкцией по развертыванию и запуску.
-
Должен быть реализован вывод в журнальный файл ключевых сообщений по работе сервиса(ов) для понимания как работает сервис.
- Не совсем понятны стартовые условия. Нужно сделать api, с которым может взаимодействовать клиент для скачивания файлов
или после старта программы она должна закачивать и сохранять файлы? Можете уточнить этот вопрос?
- Просто как можно быстрее качаем и обрабатываем файлы.
- Данные должны обновляться по мере вставки каждой новой записи, или можно обновить через 5 минут например?
- Не знаем. Данные должны быть, как обычно, консистентны.
- А сколько раз нужно загрузить картинки ? То есть сколько картинок нужно загружать ? Когда остановиться ?
- Можно никогда не останавливаться, мы сможем сами остановить приложение если потребуется.
- Для того, чтобы построить систему с максимальной производительностью, файлы надо хранить не в базе данных, а в файловом хранилище.
- Нам хотелось получить их в базе данных. Впрочем мы согласны получить содержимое файлов в файловом хранилище, а все остальное - в БД.