Конфигурация GlobalScheduler в автономном режиме#
Настройка конфигурационного файла#
Расположение основного файла конфигурации: /opt/global/globalserver/application/config/tools/scheduler/quartz.properties.
Создайте файл конфигурации планировщика:
sudo mkdir -p /opt/global/globalserver/application/config/tools/scheduler
sudo touch /opt/global/globalserver/application/config/tools/scheduler/quartz.properties
Вставьте содержимое:
org.quartz.scheduler.instanceName = PostgresScheduler
org.quartz.scheduler.instanceId = AUTO
org.quartz.threadPool.class = ru.bitec.jobscheduler.threadpool.GsfThreadPool
org.quartz.threadPool.threadCount = 500
org.quartz.jobStore.class = ru.bitec.jobscheduler.jobstore.GsfJobStore
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
org.quartz.jobStore.dataSource = quartzDS
org.quartz.jobStore.dontSetAutoCommitFalse=false
org.quartz.dataSource.quartzDS.driver = org.postgresql.Driver
org.quartz.dataSource.quartzDS.URL = jdbc:postgresql://<DBHOST>:5432/<DBNAME>?ApplicationName=Global-Scheduler
org.quartz.dataSource.quartzDS.user = <DBUSER>
org.quartz.dataSource.quartzDS.password = <DBPASS>
org.quartz.jobStore.tablePrefix=btk_qrtz_
org.terracotta.quartz.skipUpdateCheck=true
ru.bitec.jobscheduler.jobThreadWatcher.durationBetweenChecks = 10000
ru.bitec.jobscheduler.webserver.port = 8180
Где:
<DBHOST> — адрес сервера postgres;
<DBNAME> — имя БД;
<DBUSER> — пользователь БД;
<DBPASS> — пароль пользователя БД.
Настройка логирования планировщика#
Создайте файл конфигурации лога планировщика.
sudo touch /opt/global/globalserver/application/config/tools/scheduler/logback.xml
Вставьте содержимое:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT_DEFAULT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>[%d{dd-MM-yyyy HH:mm:ss.SSS}] [%level] [%thread] [%logger] - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILEOUT_SESSION" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/opt/global/globalserver/logs/scheduler/jobscheduler.%d{yyyy-MM-dd_HH}.log</fileNamePattern>
<maxHistory>1488</maxHistory>
<totalSizeCap>5GB</totalSizeCap>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<encoder>
<pattern>[%d{dd-MM-yyyy HH:mm:ss.SSS}] [%level] [%thread] [%logger] - %msg%n</pattern>
</encoder>
</appender>
<!--
Возможные значения параметра "level" в порядке приоритета важноости
OFF
ERROR
WARN
INFO
DEBUG
TRACE
ALL
-->
<root level="INFO">
<appender-ref ref="STDOUT_DEFAULT"/>
<appender-ref ref="FILEOUT_SESSION"/>
</root>
</configuration>
Настройка сервиса globalscheduler#
Для настройки сервиса скопируйте файл /opt/global/globalserver/admin/linux/scheduler/globalscheduler.service.origin в каталог /lib/systemd/system и переименуйте globalscheduler.service.
sudo cp /opt/global/globalserver/admin/linux/scheduler/globalscheduler.service.origin /lib/systemd/system/globalscheduler.service
или создайте новый файл:
sudo touch /usr/lib/systemd/system/globalscheduler.service
Содержимое:
[Unit]
Description=Менеджер заданий Global SE Postgres
After=multi-user.target
[Service]
Type=idle
WorkingDirectory=/opt/global/globalserver
ExecStart=/opt/global/globalserver/globalscheduler.sh
TimeoutStopSec=110
[Install]
WantedBy=multi-user.target
Разрешите автозагрузку сервиса:
sudo systemctl daemon-reload
sudo systemctl enable globalscheduler
Установка приватного ключа#
В основном файле конфигурации планировщика quartz.properties укажите путь до файла с закрытым ключом шифрования (quartz.privatekey.txt/quartz.private.pem) в параметре.
ru.bitec.jobscheduler.privatekey.path = /some/path/to/file
Пример конфигурации:
ru.bitec.jobscheduler.privatekey.path = /opt/global/globalserver/application/config/tools/scheduler/quartz.private.pem
Этот ключ будет использоваться для подписания токена авторизации для пользователя, который является исполнителем задачи планировщика.
Для применения конфигурации перезапустите сервис globalscheduler:
sudo systemctl restart globalscheduler.service
Установка публичного ключа и настроек Quartz#
Для указания открытого ключа для проверки токена авторизации планировщика заданий откройте приложение Настройка системы.
Откройте меню: Настройки и сервисы -> Настройки модулей системы -> Общие настройки модулей.

В списке выберите модуль btk и откройте на редактирование

В открывшемся окне выберите Настройки для Quartz и нажмите на кнопку с тремя точками:

В открывшемся окне задайте следующие значения:
База данных: alias базы данных из файла
global3.config.xml.HTTPS включён: в зависимости от того, используется ли https в Global, включите данную опцию.
Логин: логин пользователя scheduler в Global (scheduler по умолчанию).
Пароль: пароль пользователя scheduler в Global.
Публичный ключ: открытый ключ (содержимое файла
quartz.publickey.txt/quartz.public.pem).Soap хост: домен/IP адрес, на котором доступен Global;
Soap порт: порт, на котором доступен Global (8080 по умолчанию).
Пример конфигурации:

По завершению конфигурации нажмите зеленую стрелку, а затем операцию Сохранить в окне с настройками модуля btk.
Установка cacerts для java#
Для работы globalscheduler с использованием ssl, добавьте сертификаты в хранилище java. Для этого используйте утилиту keytool:
sudo keytool -import -keystore <cacerts path> -alias <Alias_Name> -file <certificate file location>
Где:
cacerts path— путь до файлаcacerts, пример пути/usr/lib/jvm/bellsoft-java21-full-amd64/lib/security/cacerts;alias name— название записи;certificate file location— путь до сертификата.
Пример полной команды:
sudo keytool -import -keystore /usr/lib/jvm/bellsoft-java21-full-amd64/lib/security/cacerts -alias gs-ca -file /home/sysadm/gs-CA.crt
Перезапуск работы#
При необходимости перезапуска сервиса globalscheduler выполните следующую команду:
sudo systemctl restart globalscheduler.service
Для синхронизации работы сервиса без его перезапуска, после применения изменений в настройках Quartz (Настройки и сервисы -> Настройки модулей системы -> Общие настройки модулей), необходимо сбросить кеши и синхронизировать задачи планировщика. Для этого:
Откройте пункт меню Сервис -> Управление решением -> Очистить все кэши.

В приложении
Настройки системыоткройте меню Настройки и сервисы -> Менеджер заданий.
В открывшемся окне выполните операцию Синхронизировать все.

Проверка работоспособности сервиса#
Перейдите в Менеджер заданий:

Правой кнопкой мыши нажмите на активное задание, перейдите в пункт Дополнительно, выполните команду Выполнить задачу:

В нижней части страницы перейдите в окно настроек задачи, перейдите на вкладку Журнал. В списке будет отображены даты запуска выбранной задачи. Обновите список кнопкой Обновить, через некоторое время scheduler выполнит задачу и ее состояние переключится на Выполнено. Если спустя несколько минут состояние не обновилось, необходимо проверить логи сервиса на предмет ошибок, а также перепроверить конфигурацию и настройки.
