Описание
Сервис 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 | Сервис запущен: Active: active (running) Cервис не запущен: Active: failed |
Запуск сервиса | service eltex-bruce start | Сервис успешно запущен: Active: active (running) |
Остановка сервиса | service eltex-bruce stop | Сервис успешно остановлен: Active: failed |
Перезапуск сервиса | service eltex-bruce restart | Сервис успешно перезапущен: Active: active (running) |
Докеризация сервиса
Сервис может быть запущен в docker-контейнере. Для этого необходимо подготовить файл с переменными окружения .env и docker-compose.yml.
version: "3" services: eltex-bruce: ports: # Проброс порта из контейнера на хост. На этот порт обращается ЛК B2B. - "8008:${SERVER_PORT}" container_name: eltex-bruce image: hub.eltex-co.ru/softwlc/eltex-bruce:1.20-<tag> 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} # Настройка перенаправления логов в Graylog - BRUCE_GELF_HOST=${BRUCE_GELF_HOST} - BRUCE_GELF_PORT=${BRUCE_GELF_PORT} - BRUCE_GELF_LEVEL=${BRUCE_GELF_PORT}
SERVER_PORT=8008 SERVER_ADDRESS_JOBS=http://localhost:9696 SPRING_QUARTZ_JOBSTORETYPE=memory 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_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_GELF_HOST=localhost BRUCE_GELF_PORT=12201 BRUCE_GELF_LEVEL=INFO
Описание переменных (environment)
Запуск сервиса
- SERVER_PORT - порт, на котором сервис будет работать внутри контейнера;
Подключение к БД (MongoDB)
- SPRING_DATA_MONGODB_URI - URI для подключекния к БД MongoDB;
Подключение к сервису Jobs
- SERVER_ADDRESS_JOBS - URL для подключения к сервису Jobs;
Настройка перенаправления логов на сервер Graylog
- BRUCE_GELF_LEVEL - уровень логов, перенаправляемых в Graylog
- BRUCE_GELF_HOST - адрес хоста Graylog
- BRUCE_GELF_PORT - порт хоста Graylog
Файлы .env и docker-compose.yml должны находиться в одной папке. Контейнер запускается командой:
docker-compose up -d