Drawio |
---|
border | true |
---|
viewerToolbar | true |
---|
| |
---|
fitWindow | false |
---|
diagramName | Reporter feature description |
---|
simpleViewer | false |
---|
width | |
---|
diagramWidth | 1131 |
---|
revision | 1 |
---|
|
Описание
Сервис 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.
Блок кода |
---|
language | yml |
---|
title | 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.19-<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}
|
Вместо <tag> необходимо указать актуальную версию, которую можно посмотреть по ссылке.
Блок кода |
---|
|
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
|
Файлы .env и docker-compose.yml должны находиться в одной папке. Контейнер запускается командой:
Блок кода |
---|
|
docker-compose up |