Разработать систему для обработки XML файлов с использованием RabbitMQ для взаимодействия между несколькими сервисами в .NET.
Сервис, отвечающий за обработку XML файлов.
- Читает XML файлы с диска с периодичностью 1 раз в секунду.
- Парсит XML данные и создает классы на основе полученных данных.
- Случайным образом изменяет поле
ModuleState
каждого модуля (Online, Run, NotReady, Offline). - Формирует результат в формате JSON (содержащем все модули с измененным полем).
- Отправляет сформированный JSON в DataProcessor Service через RabbitMQ для дальнейшей обработки.
- Сервис, который принимает сообщения из RabbitMQ и обрабатывает данные.
- Сохраняет результаты обработки в базу данных (возможно использование локальной БД).
- Сохраняет поля
ModuleCategoryID
иModuleState
. - Если
ModuleCategoryID
уже существует в БД, обновляет толькоModuleState
.
- Используется для связи между FileParser и DataProcessor сервисами.
- Обеспечить обработку файла в отдельном потоке для оптимизации процесса.
- Реализовать логирование для отслеживания процесса обработки файла.
- Обработка ошибок.
- Использование SQLite для хранения данных.
- Предоставление исходного кода на GitHub или в виде архива.
- Предоставление файлов базы данных SQLite, возможно, с примерами или тестовыми данными.
- Описание шагов по развертыванию системы на хосте для проведения проверки.
- Инструкции по установке и запуску сервисов.
- Шаги по созданию и настройке базы данных.
- Конфигурирование подключения к RabbitMQ.
- Легко изменяемые настройки подключения к RabbitMQ должны быть предусмотрены в настройках сервисов для возможности подключения к другому RabbitMQ хосту без изменения кода.