Версия и релиз сервера приложений указываются в настройках, протоколируются при старте, выводятся при доступе к WEB-Серверу
This commit is contained in:
parent
72cbe53eda
commit
e93115509a
@ -9,6 +9,10 @@
|
||||
|
||||
//Общие параметры
|
||||
let common = {
|
||||
//Версия сервера приложений
|
||||
sVersion: "8.5.6.1",
|
||||
//Релиз сервера приложений
|
||||
sRelease: "2020.04.02",
|
||||
//Таймаут останова сервера (мс)
|
||||
nTerminateTimeout: 60000
|
||||
};
|
||||
|
@ -9,6 +9,10 @@
|
||||
|
||||
//Общие параметры
|
||||
let common = {
|
||||
//Версия сервера приложений
|
||||
sVersion: "8.5.6.1",
|
||||
//Релиз сервера приложений
|
||||
sRelease: "2020.04.02",
|
||||
//Таймаут останова сервера (мс)
|
||||
nTerminateTimeout: 60000
|
||||
};
|
||||
|
@ -194,6 +194,10 @@ class ParusAppServer {
|
||||
let sCheckResult = validateObject(prms, prmsAppSchema.init, "Параметры инициализации");
|
||||
//Если настройки верны - будем стартовать
|
||||
if (!sCheckResult) {
|
||||
//Протоколируем версию и релиз
|
||||
await this.logger.info(
|
||||
`Версия сервера приложений: ${prms.config.common.sVersion}, релиз: ${prms.config.common.sRelease}`
|
||||
);
|
||||
//Создаём подключение к БД
|
||||
this.dbConn = new db.DBConnector({ connectSettings: prms.config.dbConnect });
|
||||
//Создаём модуль рассылки уведомлений
|
||||
@ -207,6 +211,7 @@ class ParusAppServer {
|
||||
});
|
||||
//Создаём обработчик очереди входящих
|
||||
this.inQ = new iq.InQueue({
|
||||
common: prms.config.common,
|
||||
inComing: prms.config.inComing,
|
||||
dbConn: this.dbConn,
|
||||
logger: this.logger,
|
||||
|
@ -59,6 +59,8 @@ class InQueue extends EventEmitter {
|
||||
let sCheckResult = validateObject(prms, prmsInQueueSchema.InQueue, "Параметры конструктора класса InQueue");
|
||||
//Если структура объекта в норме
|
||||
if (!sCheckResult) {
|
||||
//Общие параметры сервера приложений
|
||||
this.common = _.cloneDeep(prms.common);
|
||||
//Список обслуживаемых сервисов
|
||||
this.services = null;
|
||||
//Признак функционирования обработчика
|
||||
@ -381,7 +383,7 @@ class InQueue extends EventEmitter {
|
||||
//Для любых запросов к корневому адресу сервиса - ответ о том, что это за сервис, и что он работает
|
||||
this.webApp.all(srvs.sSrvRoot, (req, res) => {
|
||||
res.status(200).send(
|
||||
`<html><body><center><br><h1>Сервер приложений ПП Парус 8</h1><h3>Сервис: ${srvs.sName}</h3></center></body></html>`
|
||||
`<html><body><center><br><h1>Сервер приложений ПП Парус 8<br>(${this.common.sVersion} релиз ${this.common.sRelease})</h1><h3>Сервис: ${srvs.sName}</h3></center></body></html>`
|
||||
);
|
||||
});
|
||||
//Для всех статических функций сервиса...
|
||||
@ -435,7 +437,7 @@ class InQueue extends EventEmitter {
|
||||
//Запросы на адреса, не входящие в состав объявленных сервисов - 404 NOT FOUND
|
||||
this.webApp.use("*", (req, res) => {
|
||||
res.status(404).send(
|
||||
"<html><body><center><br><h1>Сервер приложений ПП Парус 8</h1><h3>Запрошенный адрес не найден</h3></center></body></html>"
|
||||
`<html><body><center><br><h1>Сервер приложений ПП Парус 8<br>(${this.common.sVersion} релиз ${this.common.sRelease})</h1><h3>Запрошенный адрес не найден</h3></center></body></html>`
|
||||
);
|
||||
});
|
||||
//Ошибки, не отработанные индивидуальными обработчиками - 500 SERVER ERROR
|
||||
|
@ -30,6 +30,24 @@ const validateMsgMaxSize = val => val >= 1 && val <= 1000 && Number.isInteger(va
|
||||
|
||||
//Схема валидации общих параметров сервера приложений
|
||||
const common = new Schema({
|
||||
//Версия сервера приложений
|
||||
sVersion: {
|
||||
type: String,
|
||||
required: true,
|
||||
message: {
|
||||
type: path => `Версия сервера приложений (${path}) имеет некорректный тип данных (ожидалось - String)`,
|
||||
required: path => `Не указана версия сервера приложений (${path})`
|
||||
}
|
||||
},
|
||||
//Релиз сервера приложений
|
||||
sRelease: {
|
||||
type: String,
|
||||
required: true,
|
||||
message: {
|
||||
type: path => `Релиз сервера приложений (${path}) имеет некорректный тип данных (ожидалось - String)`,
|
||||
required: path => `Не указан релиз сервера приложений (${path})`
|
||||
}
|
||||
},
|
||||
//Таймаут останова сервера (мс)
|
||||
nTerminateTimeout: {
|
||||
type: Number,
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
const Schema = require("validate"); //Схемы валидации
|
||||
const { IncomingMessage, ServerResponse } = require("http"); //Работа с HTTP протоколом
|
||||
const { inComing } = require("./obj_config"); //Схемы валидации конфигурации сервера приложений
|
||||
const { common, inComing } = require("./obj_config"); //Схемы валидации конфигурации сервера приложений
|
||||
const { defServices } = require("./obj_services"); //Схема валидации списка сервисов
|
||||
const { DBConnector } = require("../core/db_connector"); //Класс взаимодействия в БД
|
||||
const { Logger } = require("../core/logger"); //Класс для протоколирования работы
|
||||
@ -23,6 +23,14 @@ const { Notifier } = require("../core/notifier"); //Класс рассылки
|
||||
|
||||
//Схема валидации параметров конструктора
|
||||
exports.InQueue = new Schema({
|
||||
//Общие параметры сервера приложений
|
||||
common: {
|
||||
schema: common,
|
||||
required: true,
|
||||
message: {
|
||||
required: path => `Не указаны общие параметры сервера приложений (${path})`
|
||||
}
|
||||
},
|
||||
//Параметры обработки очереди входящих сообщений
|
||||
inComing: {
|
||||
schema: inComing,
|
||||
|
Loading…
x
Reference in New Issue
Block a user