Конфигурация 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 и откройте на редактирование

Выбор модуля 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 (Настройки и сервисы -> Настройки модулей системы -> Общие настройки модулей), необходимо сбросить кеши и синхронизировать задачи планировщика. Для этого:

  1. Откройте пункт меню Сервис -> Управление решением -> Очистить все кэши.

    Очистить все кэши

  2. В приложении Настройки системы откройте меню Настройки и сервисы -> Менеджер заданий.

    Менеджер заданий

    В открывшемся окне выполните операцию Синхронизировать все.

    Синхронизировать все

Проверка работоспособности сервиса#

Перейдите в Менеджер заданий:

Менеджер заданий

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

Выбранное задание

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

Проверка задания