![]()
Сервис eltex-bruce выполняет роль менеджера задач для сервиса eltex-jobs - формирует задачи и отслеживает статус их выполнения. Параметры задач хранятся в базе данных mongo.
Сервис устанавливается с помощью пакетного менеджера командой
apt install eltex-bruce |
Конфигурационный файл для настройки доступен по пути /etc/eltex-bruce/application.properties
# порт используемый сервисом server.port=8008 # ip-адрес сервиса eltex-jobs server.address.jobs=http://localhost:9696 spring.quartz.job-store-type=memory # название базы данных, в которой ELTEX-BRUCE будет хранить данные spring.data.mongodb.database=scheduler # адрес базы данных spring.data.mongodb.uri=mongodb://localhost/scheduler spring.quartz.properties.org.quartz.scheduler.instanceName=jobs-quartz spring.quartz.properties.org.quartz.scheduler.instanceId=AUTO spring.quartz.properties.org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool spring.quartz.properties.org.quartz.threadPool.threadCount=10 spring.quartz.properties.org.quartz.threadPool.threadPriority=5 spring.quartz.properties.org.quartz.jobStore.misfireThreshold=12000000000 |
Файл настройки инициализации сервиса /etc/default/eltex-bruce
# Scheduling service # HTTP Port for use by Eltex Bruce -- порт, использующийся сервисом PORT=8008 # Initial size of Java heap -- выделение оперативной памяти для инициализации JAVA_INIT_HEAP=32m # Maximum size of Java heap -- ограничение потребления оперативной памяти для java-приложения JAVA_MAX_HEAP=256m # Additional arguments to pass to java -- Дополнительные аргументы для запуска java-приложения JAVA_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/eltex-bruce |
| Действие | Команда | Ответ | ||
|---|---|---|---|---|
| Проверка состояния | service eltex-bruce status | Сервис запущен:
Cервис не запущен:
| ||
| Запуск сервиса | service eltex-bruce start | Сервис успешно запущен:
| ||
| Остановка сервиса | service eltex-bruce stop | Сервис успешно остановлен:
| ||
| Перезапуск сервиса | service eltex-bruce restart | Сервис успешно перезапущен:
|
Сервис может быть запущен в docker-контейнере. Для этого необходимо подготовить файл с переменными окружения .env и docker-compose.yml.
version: "3"
services:
eltex-bruce:
ports:
# Проброс порта из контейнера на хост. На этот порт обращается ЛК B2B.
- "8008:${SERVER_PORT}"
container_name: eltex-bruce
image: ${ELTEX_HUB}/eltex-bruce:${SWLC_VERSION}
environment:
# Настроить порт внутри контейнера. По-умолчанию 8008
- SERVER_PORT=${SERVER_PORT}
# Настроить адрес сервиса Jobs. Можно также объединить в один compose и создать одну сеть для сервисов.
- SERVER_ADDRESS_JOBS=${SERVER_ADDRESS_JOBS}
- SPRING_QUARTZ_JOBSTORETYPE=${SPRING_QUARTZ_JOBSTORETYPE}
- SPRING_DATA_MONGODB_DATABASE=${SPRING_DATA_MONGODB_DATABASE}
# Настроить адрес MongoDB.
- SPRING_DATA_MONGODB_URI=${SPRING_DATA_MONGODB_URI}
- SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_SCHEDULER_INSTANCENAME=${SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_SCHEDULER_INSTANCENAME}
- SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_SCHEDULER_INSTANCEID=${SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_SCHEDULER_INSTANCEID}
- SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_THREADPOOL_CLASS=${SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_THREADPOOL_CLASS}
- SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_THREADPOOL_THREADCOUNT=${SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_THREADPOOL_THREADCOUNT}
- SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_THREADPOOL_THREADPRIORITY=${SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_THREADPOOL_THREADPRIORITY}
- SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_JOBSTORE_MISFIRETHRESHOLD=${SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_JOBSTORE_MISFIRETHRESHOLD}
# Настройка логгирования
- BRUCE_LOG_LEVEL=${BRUCE_LOG_LEVEL}
- BRUCE_CONSOLE_LEVEL=${BRUCE_CONSOLE_LEVEL}
# Настройка перенаправления логов в Graylog
- GELF_HOST=${GELF_HOST}
- GELF_PORT=${GELF_PORT}
- GELF_LEVEL=${GELF_PORT} |
ELTEX_HUB=hub.eltex-co.ru/softwlc SWLC_VERSION=1.21-<tag> SERVER_PORT=8008 SERVER_ADDRESS_JOBS=http://<ip_jobs-service>:9696 SPRING_QUARTZ_JOBSTORETYPE=memory SPRING_DATA_MONGODB_DATABASE=scheduler SPRING_DATA_MONGODB_URI=mongodb://<ip_mongodb_server>/scheduler SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_SCHEDULER_INSTANCENAME=jobs-quartz SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_JOBSTORE_MISFIRETHRESHOLD=12000000000 SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_THREADPOOL_CLASS=org.quartz.simpl.SimpleThreadPool SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_SCHEDULER_INSTANCEID=AUTO SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_THREADPOOL_THREADPRIORITY=5 SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_THREADPOOL_THREADCOUNT=10 # Настройка логгирования BRUCE_LOG_LEVEL=INFO BRUCE_CONSOLE_LEVEL=INFO # Настройка перенаправления логов в Graylog GELF_HOST=udp:<ip_graylog_server> GELF_PORT=12201 GELF_LEVEL=INFO |
Вместо <tag> необходимо указать актуальную версию, которую можно посмотреть по ссылке. Вместо <ip_jobs_service> необходимо указать ip-адрес сервиса eltex-jobs. Вместо <ip_mongodb_server> необходимо указать ip-адрес сервера MongoDB. Вместо <ip_graylog_server> необходимо указать ip-адрес сервера Graylog. |
Запуск сервиса
SERVER_PORT - порт, на котором сервис будет работать внутри контейнера;
ELTEX_HUB - URL репозитория Элтекс;
SWLC_VERSION - версия образа;
Подключение к БД (MongoDB)
SPRING_DATA_MONGODB_URI - URI для подключекния к БД MongoDB;
Подключение к сервису Jobs
SERVER_ADDRESS_JOBS - URL для подключения к сервису Jobs;
Параметры логгирования
BRUCE_CONSOLE_LOG_LEVEL - уровень логгирования сервиса в консоль;
BRUCE_LOG_LEVEL - уровень логгирования сервиса;
Настройка перенаправления логов на сервер Graylog
GELF_LEVEL - уровень логов, перенаправляемых в Graylog;
GELF_HOST - адрес хоста Graylog;
GELF_PORT - порт хоста Graylog.
Файлы .env и docker-compose.yml должны находиться в одной папке. Контейнер запускается командой:
docker-compose up -d |