Описание
Сервис eltex-jobs выполняет формирование задачи с необходимыми параметрами и отправку отчета пользователю по команде от сервиса bruce. Параметры задачи хранятся в базе данных mongo.
Для корректной работы сервиса необходим доступ до сервиса eltex-ngw с настроенным email-шлюзом.
Установка
Сервис устанавливается с помощью пакетного менеджера командой
apt install eltex-jobs
Настройка
Конфигурационный файл для настройки доступен по пути /etc/eltex-jobs/application.properties
# порт используемый сервисом server.port=9696 spring.batch.job.enabled=false spring.datasource.jdbcUrl=jdbc:h2:mem:testdb;DB_CLOSE_ON_EXIT=FALSE spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.datasource.maximum-pool-size=200 spring.h2.console.enabled=true # адрес базы данных ems и имя драйвера spring.emsdatasource.jdbcUrl=jdbc:mysql://localhost/eltex_ems?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000 spring.emsdatasource.driverClassName=com.mysql.cj.jdbc.Driver # логин для подключения к бд ems spring.emsdatasource.username=javauser # пароль для подключения к бд ems spring.emsdatasource.password=javapassword # ConnectionTimeout property controls the maximum number of milliseconds that a client (that's you) will wait for a connection from the pool. spring.emsdatasource.connection-timeout=15000 # ValidationTimeout property controls the maximum amount of time that a connection will be tested for aliveness. spring.emsdatasource.validation-timeout=3000 # IdleTimeout property controls the maximum amount of time that a connection is allowed to sit idle in the pool. spring.emsdatasource.idle-timeout=30000 # MinimumIdle property controls the minimum number of idle connections that HikariCP tries to maintain in the pool. spring.emsdatasource.minimum-idle=1 # Maximum size of connection pool spring.emsdatasource.maximum-pool-size=48 # адрес сервиса ngw services.ngw.host=localhost # порт сервиса ngw services.ngw.port=8040 services.ngw.retries=1 # ограничение размера сообщения для NGW в байтах services.ngw.attachment.maxSize=10000000 services.report.allSessions.compress=true # имя базы данных services.mongo.database=jobs # адрес базы данных services.mongo.uri=mongodb://127.0.0.1:27017/jobs # адрес базы данных radius для Clickhouse(раскоментировать при переходе на Clickhouse) #spring.radiusdatasource.jdbcUrl=jdbc:clickhouse://localhost:8123/radius?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000 # имя драйвера для Clickhouse(раскоментировать при переходе на Clickhouse) #spring.radiusdatasource.driverClassName=ru.yandex.clickhouse.ClickHouseDriver # адрес базы данных radius для MySQL(закоментировать при переходе на MySQL) spring.radiusdatasource.jdbcUrl=jdbc:mysql://localhost/radius?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000 # имя драйвера для MySQL(закоментировать при переходе на MySQL) spring.radiusdatasource.driverClassName=com.mysql.cj.jdbc.Driver # логин для подключения к бд radius spring.radiusdatasource.username=javauser # пароль для подключения к бд radius spring.radiusdatasource.password=javapassword
Докеризация сервиса
Сервис может быть запущен в docker-контейнере. Для этого необходимо подготовить файл с переменными окружения .env и docker-compose.yml.
docker-compose.yml
version: "3" services: eltex-jobs: ports: # Проброс порта из контейнера на хост. На этот порт обращается Eltex-Bruce. - "9696:${SERVER_PORT}" container_name: eltex-jobs image: hub.eltex-co.ru/softwlc/eltex-jobs:1.20-<tag> environment: # Порт на котором поднят сервис внутри контейнера. По-умолчанию 9696 - SERVER_PORT=${SERVER_PORT} - SPRING_BATCH_JOB_ENABLED=${SPRING_BATCH_JOB_ENABLED} - SPRING_DATASOURCE_JDBCURL=${SPRING_DATASOURCE_JDBCURL} - SPRING_DATASOURCE_DRIVERCLASSNAME=${SPRING_DATASOURCE_DRIVERCLASSNAME} - SPRING_DATASOURCE_USERNAME=${SPRING_DATASOURCE_USERNAME} - SPRING_DATASOURCE_PASSWORD=${SPRING_DATASOURCE_PASSWORD} - SPRING_DATASOURCE_MAXIMUMPOOLSIZE=${SPRING_DATASOURCE_MAXIMUMPOOLSIZE} - SPRING_H2_CONSOLE_ENABLED=${SPRING_H2_CONSOLE_ENABLED} # JDBC-адрес подключения до БД eltex_ems - SPRING_EMSDATASOURCE_JDBCURL=${SPRING_EMSDATASOURCE_JDBCURL} - SPRING_EMSDATASOURCE_DRIVERCLASSNAME=${SPRING_EMSDATASOURCE_DRIVERCLASSNAME} # Логин от БД eltex_ems - SPRING_EMSDATASOURCE_USERNAME=${SPRING_EMSDATASOURCE_USERNAME} # Пароль от БД eltex_ems - SPRING_EMSDATASOURCE_PASSWORD=${SPRING_EMSDATASOURCE_PASSWORD} - SPRING_EMSDATASOURCE_CONNECTIONTIMEOUT=${SPRING_EMSDATASOURCE_CONNECTIONTIMEOUT} - SPRING_EMSDATASOURCE_VALIDATIONTIMEOUT=${SPRING_EMSDATASOURCE_VALIDATIONTIMEOUT} - SPRING_EMSDATASOURCE_IDLETIMEOUT=${SPRING_EMSDATASOURCE_IDLETIMEOUT} - SPRING_EMSDATASOURCE_MINIMUMIDLE=${SPRING_EMSDATASOURCE_MINIMUMIDLE} - SPRING_EMSDATASOURCE_MAXIMUMPOOLSIZE=${SPRING_EMSDATASOURCE_MAXIMUMPOOLSIZE} # Адрес хоста NGW - SERVICES_NGW_HOST=${SERVICES_NGW_HOST} # Адрес порта NGW - SERVICES_NGW_PORT=${SERVICES_NGW_PORT} - SERVICES_NGW_RETRIES=${SERVICES_NGW_RETRIES} - SERVICES_NGW_ATTACHMENT_MAXSIZE=${SERVICES_NGW_ATTACHMENT_MAXSIZE} - SERVICES_REPORT_ALLSESSIONS_COMPRESS=${SERVICES_REPORT_ALLSESSIONS_COMPRESS} - SERVICES_MONGO_DATABASE=${SERVICES_MONGO_DATABASE} # Адрес подключения к MongoDB - SERVICES_MONGO_URI=${SERVICES_MONGO_URI} # JDBC-адрес подключения до БД radius - SPRING_RADIUSDATASOURCE_JDBCURL=${SPRING_RADIUSDATASOURCE_JDBCURL} - SPRING_RADIUSDATASOURCE_DRIVERCLASSNAME=${SPRING_RADIUSDATASOURCE_DRIVERCLASSNAME} # Логин от БД radius - SPRING_RADIUSDATASOURCE_USERNAME=${SPRING_RADIUSDATASOURCE_USERNAME} # Пароль от БД radius - SPRING_RADIUSDATASOURCE_PASSWORD=${SPRING_RADIUSDATASOURCE_PASSWORD}
.env
SERVER_PORT=9696 SERVICES_MONGO_DATABASE=jobs SERVICES_MONGO_URI=mongodb://127.0.0.1:27017/jobs SERVICES_NGW_ATTACHMENT_MAXSIZE=10000000 SERVICES_NGW_HOST=localhost SERVICES_NGW_PORT=8040 SERVICES_NGW_RETRIES=1 SERVICES_REPORT_ALLSESSIONS_COMPRESS=true SPRING_BATCH_JOB_ENABLED=false SPRING_DATASOURCE_DRIVERCLASSNAME=org.h2.Driver SPRING_DATASOURCE_JDBCURL=jdbc:h2:mem:testdb;DB_CLOSE_ON_EXIT=FALSE SPRING_DATASOURCE_MAXIMUMPOOLSIZE=200 SPRING_DATASOURCE_PASSWORD= SPRING_DATASOURCE_USERNAME=sa SPRING_EMSDATASOURCE_CONNECTIONTIMEOUT=15000 SPRING_EMSDATASOURCE_DRIVERCLASSNAME=com.mysql.cj.jdbc.Driver SPRING_EMSDATASOURCE_IDLETIMEOUT=30000 SPRING_EMSDATASOURCE_JDBCURL=jdbc:mysql://localhost/eltex_ems?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000 SPRING_EMSDATASOURCE_MAXIMUMPOOLSIZE=48 SPRING_EMSDATASOURCE_MINIMUMIDLE=1 SPRING_EMSDATASOURCE_PASSWORD=javapassword SPRING_EMSDATASOURCE_USERNAME=javauser SPRING_EMSDATASOURCE_VALIDATIONTIMEOUT=3000 SPRING_H2_CONSOLE_ENABLED=true SPRING_RADIUSDATASOURCE_DRIVERCLASSNAME=com.mysql.cj.jdbc.Driver SPRING_RADIUSDATASOURCE_JDBCURL=jdbc:mysql://localhost/radius?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000 SPRING_RADIUSDATASOURCE_PASSWORD=javapassword SPRING_RADIUSDATASOURCE_USERNAME=javauser
Описание переменных (environment)
Запуск сервиса
- SERVER_PORT - порт, на котором сервис будет работать внутри контейнера;
Подключение к БД jobs (MongoDB)
- SERVICES_MONGO_URI - URI для подключения к БД;
Подключение к сервису NGW
- SERVICES_NGW_HOST - ip-адрес сервиса NGW;
- SERVICES_NGW_PORT - порт, на котором работает сервис NGW;
Подключение к БД eltex_ems (MySQL)
- SPRING_EMSDATASOURCE_JDBCURL - jdbc-адрес подключекния к БД eltex_ems;
- SPRING_EMSDATASOURCE_USERNAME - Логин подключения к БД;
- SPRING_EMSDATASOURCE_PASSWORD - Пароль подключения к БД;
Подключение к БД radius (MySQL)
- SPRING_RADIUSDATASOURCE_JDBCURL - jdbc-адрес для подключекния к БД radius;
- SPRING_RADIUSDATASOURCE_USERNAME - Логин подключения к БД;
- SPRING_RADIUSDATASOURCE_PASSWORD - Пароль подключения к БД;
Файлы .env и docker-compose.yml должны находиться в одной папке. Контейнер запускается командой:
command
docker-compose up -d