Интеграция с сервером
Contents
Интеграция с сервером#
Код инициализации модуля#
На событие (пере-)загрузки прикладного кода, возможно выполнить свой
код. Для этого, в каталоге со scala-кодом модуля, необходимо создать
файл с именем {модуль}_ModuleInit.scala
, содержащий
object {модуль}_ModuleInit {}
Пример:
Gs3_ModuleInit.scala
object Gs3_ModuleInit {
// Размещённый тут код будет выполнен при запуске загрузчика классов
SBT
}
Обработка системных событий сервера#
В процессе работы, сервер генерирует ряд системных событий, который
можно обработать в прикладном коде. Для этого, необходимо подписаться на
события объекта ServerEventSource
в код инициализации модуля.
object Gs3_ModuleInit {
private val _logger: Logger =
Logger.Factory.get("ru.bitec.app.gs3.Gs3_ModuleInit")
ServerEventSource.subscribeOnInstanceStart(
(conAccessor) =>_logger.info("OnInstanceStart")
)
ServerEventSource.subscribeOnConnect(
(conAccessor, btkUserInfo) =>
_logger.info(s"OnConnect: ${btkUserInfo.name}")
)
}
Перечень событий:
OnInstanceStart
Событие возникает после подключения пула sql-соединений сервера приложений к базе данныхOnInstanceStop
Событие возникает перед отключением пула sql-соединений сервера приложений к базе данныхOnConnect
Событие возникает в процессе запуска пользовательской сессиии, после успешной авторизации пользователя в системе. Для запрета подключения пользователя к системе, необходимо выбросить ошибку.OnSessionStart
Событие возникает после начала сеанса работы, сеанс работы начинается после авторизации, перед открытием выборки выбора приложенияOnSessionStop
Событие возникает перед остановкой сеанса работы
Пример смотри: ru.bitec.app.btk.Btk_ModuleInit