Skip to content

Тестовое задание МТГ. Бизнес-решения

Notifications You must be signed in to change notification settings

SKharchenko87/mtgbiz-2024

Repository files navigation

mtgbiz-2024

Тестовое задание МТГ. Бизнес-решения

Тестовое задание.
1. Создать БД PostgreSQL или Firebird, или MS SQL, не суть. В БД создать таблицу из 4-5 полей. Должны быть строковые и числовые поля. Заполнить таблицу произвольными данными, не менее 5000 строк.
2. Разработать клиент-серверное приложение (по факту 2 приложения клиент и север). На форме клиента должна быть кнопка при нажатии на которую клиент запрашивает данные. После получения запроса сервер обращается в БД и передаёт данные на клиент.
3. Клиент получает данные в одном потоке и передаёт для записи в файл в другой поток. Данные из потока в поток передаются построчно.
4. Все запросы пишутся в один и тот же файл.
5. Нажатие на кнопку не должно замораживать клиент. Должна быть возможность запустить еще один запрос при выполнении других запросов.

Необходимо создать приложение-клиент на сокетах, которая просто шлет бесконечно из разных потоков (число потоков указывается на форме) данные на сервер вида 1234567890 (блоками от 1000 до 10000 байт рандомного размера), но перед этим кодирует их в Base64.

Приложение сервер простое, оно принимает эти данные и пишет в базу. где Socket клиента - это ID. То есть в базе таблица из двух полей ID (Socket - handle сокета), и Data там данные которые приходят. Но перед тем как записать данные, оно декодирует их из Base64. Сервер консольный и выводит в консоль - клиент подключился, клиент отключился, пришли новые данные (тут посмотреть как будет работать между потоками и главным потоком). Клиентов может быть много.

Внешний вид на ваш вкус.

Для запуска тестовых заданий выполните следующие шаги:

Запустите контейнеры

docker-compose -f docker-compose.yml --env-file .env up -d

Задача 1

Откройте страницу http://localhost:8091 и нажмите кнопку старт img_1.png
В результате будут записаны данные в файл client1.out

Задача 2

Откройте страницу http://localhost:8092, укажите число поток и нажмите кнопку старт img.png Ход выполнения можно увидеть в логах контейнера server и в таблице БД database.table2, строка подключения postgresql://user:password@postgres:15432/database

About

Тестовое задание МТГ. Бизнес-решения

Resources

Stars

Watchers

Forks

Packages

No packages published