Skip to content

Latest commit

 

History

History
52 lines (38 loc) · 3.51 KB

requirements.md

File metadata and controls

52 lines (38 loc) · 3.51 KB

Обработка XML файлов с использованием микросервисного подхода (C# RabbitMQ, SQLite)

Задача

Разработать систему для обработки XML файлов с использованием RabbitMQ для взаимодействия между несколькими сервисами в .NET.

Требования

1. FileParser Service

Сервис, отвечающий за обработку XML файлов.

  • Читает XML файлы с диска с периодичностью 1 раз в секунду.
  • Парсит XML данные и создает классы на основе полученных данных.
  • Случайным образом изменяет поле ModuleState каждого модуля (Online, Run, NotReady, Offline).
  • Формирует результат в формате JSON (содержащем все модули с измененным полем).
  • Отправляет сформированный JSON в DataProcessor Service через RabbitMQ для дальнейшей обработки.

2. DataProcessor Service

  • Сервис, который принимает сообщения из RabbitMQ и обрабатывает данные.
  • Сохраняет результаты обработки в базу данных (возможно использование локальной БД).
  • Сохраняет поля ModuleCategoryID и ModuleState.
  • Если ModuleCategoryID уже существует в БД, обновляет только ModuleState.

3. RabbitMQ

  • Используется для связи между FileParser и DataProcessor сервисами.

4. Многопоточность

  • Обеспечить обработку файла в отдельном потоке для оптимизации процесса.

5. Дополнительные задания

  • Реализовать логирование для отслеживания процесса обработки файла.
  • Обработка ошибок.

Что использовать и какой результат должен быть:

База данных:

  • Использование SQLite для хранения данных.

Предоставление резуальтатов:

Исходный код:

  • Предоставление исходного кода на GitHub или в виде архива.

Файлы базы данных:

  • Предоставление файлов базы данных SQLite, возможно, с примерами или тестовыми данными.

Readme файл:

  • Описание шагов по развертыванию системы на хосте для проведения проверки.
  • Инструкции по установке и запуску сервисов.
  • Шаги по созданию и настройке базы данных.
  • Конфигурирование подключения к RabbitMQ.

Конфигурируемость подключения:

  • Легко изменяемые настройки подключения к RabbitMQ должны быть предусмотрены в настройках сервисов для возможности подключения к другому RabbitMQ хосту без изменения кода.