Skip to content

Repository files navigation


TestTaskLabInvent

Тестовое задание для LabInvent

Оглавление
  1. About The Project
  2. Getting Started
  3. Usage
  4. RabbitMQ

About The Project

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

Getting Started

Описание шагов для запуска программы

Prerequisites

Действия для установки docker-compose на Ubuntu

  • Требуется для установки и выполнения последующих шагов
    sudo apt-get install curl
    sudo apt-get install gnupg
    sudo apt-get install ca-certificates
    sudo apt-get install lsb-release
  • Загрузка файла gpg для установки docker
    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  • Добавление пакетов docker и docker-compose в Ubuntu
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-pluginsudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-pluginlinux/ubuntu   $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
  • Установка docker и docker-compose
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    
  • Проверка успешности установки docker
    sudo docker run hello-world
    

Installation

  • Клонирование репозитория
    git clone https://github.com/code-lime/TestTaskLabInvent
  • Настройка параметров запуска
    nano .env

    Параметры запуска:

    RABBITMQ_USERNAME=queue_name // Пользователь RabbitMQ
    RABBITMQ_PASSWORD=queue_pass // Пароль от пользователя RabbitMQ
    RABBITMQ_QUEUE=test_queue // Название очереди в RabbitMQ
    
    LOGGING_LEVEL=Information // Уровни логирования (Verbose, Debug, Information, Warning, Error, Fatal)
    
    FILELISTENER_DELAY_SEC=1.0 // Частота проверки файлов
  • Запуск docker-compose
    docker-compose up

Usage

Для обработки .xml файлов требуется их разместить в папке ./etc/files, которая была создана после запуска docker-compose.

В папке ./etc/sqlite находится файл SQLite базы данных в который происходит сохранение измененных данных из .xml файлов отправленных через RabbitMQ

RabbitMQ

Для подключения внешней RabbitMQ требуется изменить файл docker-compose.yml.

  • Отключить локальный RabbitMQ и зависимости от него, закомментировав данные части кода
    networks:
    - rabbitmq
    depends_on:
    rabbitmq:
    condition: service_healthy
    links:
    - rabbitmq
    networks:
    - rabbitmq
    depends_on:
    rabbitmq:
    condition: service_healthy
    links:
    - rabbitmq
    rabbitmq:
    image: rabbitmq:3-management
    container_name: RabbitMQ
    hostname: rabbitmq
    environment:
    - RABBITMQ_DEFAULT_USER=${RABBITMQ_USERNAME}
    - RABBITMQ_DEFAULT_PASS=${RABBITMQ_PASSWORD}
    volumes:
    - ./etc/rabbitmq:/var/lib/rabbitmq/mnesia
    networks:
    - rabbitmq
    ports:
    - 5672:5672 #amqp
    - 15672:15672 #http
    - 15692:15692 #prometheus
    healthcheck:
    test: rabbitmq-diagnostics -q ping
    interval: 30s
    timeout: 30s
    retries: 3
    restart: always
    networks:
    rabbitmq:
    driver: bridge
  • Изменить amqp ссылку для обоих сервисов
    - RabbitMq__Url=amqp://${RABBITMQ_USERNAME}:${RABBITMQ_PASSWORD}@rabbitmq:5672
    - RabbitMq__Url=amqp://${RABBITMQ_USERNAME}:${RABBITMQ_PASSWORD}@rabbitmq:5672

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages