forked from CITKParus/P8-ExchangeService
Функция получения сведений о просроченных сообщениях очереди обмена
This commit is contained in:
parent
3bcfb6d39c
commit
7b44cfbe2b
@ -368,6 +368,43 @@ class DBConnector extends EventEmitter {
|
||||
throw new ServerError(SERR_DB_EXECUTE, "Нет подключения к БД");
|
||||
}
|
||||
}
|
||||
//Получить информацию о просроченных сообщениях обмена сервиса
|
||||
async getServiceExpiredQueueInfo(prms) {
|
||||
//Работаем только при наличии подключения
|
||||
if (this.bConnected) {
|
||||
//Проверяем структуру переданного объекта с параметрами получения информации о просроченных сообщения обмена
|
||||
let sCheckResult = validateObject(
|
||||
prms,
|
||||
prmsDBConnectorSchema.getServiceExpiredQueueInfo,
|
||||
"Параметры функции получения информации о просроченных сообщениях обмена сервиса"
|
||||
);
|
||||
//Если структура объекта в норме
|
||||
if (!sCheckResult) {
|
||||
try {
|
||||
//Подготовим параметры для передачи в БД
|
||||
let getServiceExpiredQueueInfoData = _.cloneDeep(prms);
|
||||
getServiceExpiredQueueInfoData.connection = this.connection;
|
||||
//И выполним получение информации о просроченных сообщениях
|
||||
let res = await this.connector.getServiceExpiredQueueInfo(getServiceExpiredQueueInfoData);
|
||||
//Валидируем полученный ответ
|
||||
sCheckResult = validateObject(
|
||||
res,
|
||||
objServiceSchema.ServiceExpiredQueueInfo,
|
||||
"Сведения о просроченных сообщениях обмена сервиса"
|
||||
);
|
||||
if (sCheckResult) throw new ServerError(SERR_OBJECT_BAD_INTERFACE, sCheckResult);
|
||||
//Успешно - отдаём полученные сведения о просроченных сообщениях
|
||||
return res;
|
||||
} catch (e) {
|
||||
throw new ServerError(SERR_DB_EXECUTE, e.message);
|
||||
}
|
||||
} else {
|
||||
throw new ServerError(SERR_OBJECT_BAD_INTERFACE, sCheckResult);
|
||||
}
|
||||
} else {
|
||||
throw new ServerError(SERR_DB_EXECUTE, "Нет подключения к БД");
|
||||
}
|
||||
}
|
||||
//Запись в журнал работы
|
||||
async putLog(prms) {
|
||||
//Работаем только при наличии подключения
|
||||
|
@ -293,10 +293,10 @@ create or replace package PKG_EXS as
|
||||
);
|
||||
|
||||
/* Получение информации о просроченных сообщениях очереди для сервиса */
|
||||
procedure SERVICE_QUEUE_EXPIRED_GET
|
||||
procedure SERVICE_QUEUE_EXPIRED_INFO_GET
|
||||
(
|
||||
NEXSSERVICE in number, -- Ðåã. íîìåð çàïèñè ñåðâèñà
|
||||
RCSERVICE_QUEUE_EXPIRED out sys_refcursor -- Êóðñîð ñî ñâåäåíèÿìè î ïðîñðî÷åííûõ ñîîáùåíèÿõ ñåðâèñà
|
||||
NEXSSERVICE in number, -- Ðåã. íîìåð çàïèñè ñåðâèñà
|
||||
RCSERVICE_QUEUE_EXPIRED_INFO out sys_refcursor -- Êóðñîð ñî ñâåäåíèÿìè î ïðîñðî÷åííûõ ñîîáùåíèÿõ ñåðâèñà
|
||||
);
|
||||
|
||||
/* Получение контекста сервиса */
|
||||
@ -1244,11 +1244,11 @@ create or replace package body PKG_EXS as
|
||||
RNLIST_BASE_CLEAR(NIDENT => NIDENT);
|
||||
end SERVICE_GET;
|
||||
|
||||
/* Ïîëó÷åíèå èíôîðìàöèè î ïðîñðî÷åííûõ ñîîáùåíèÿõ î÷åðåäè äëÿ ñåðâèñà */
|
||||
procedure SERVICE_QUEUE_EXPIRED_GET
|
||||
/* Ïîëó÷åíèå èíôîðìàöèè î ïðîñðî÷åííûõ ñîîáùåíèÿõ î÷åðåäè äëÿ ñåðâèñà */
|
||||
procedure SERVICE_QUEUE_EXPIRED_INFO_GET
|
||||
(
|
||||
NEXSSERVICE in number, -- Ðåã. íîìåð çàïèñè ñåðâèñà
|
||||
RCSERVICE_QUEUE_EXPIRED out sys_refcursor -- Êóðñîð ñî ñâåäåíèÿìè î ïðîñðî÷åííûõ ñîîáùåíèÿõ ñåðâèñà
|
||||
NEXSSERVICE in number, -- Ðåã. íîìåð çàïèñè ñåðâèñà
|
||||
RCSERVICE_QUEUE_EXPIRED_INFO out sys_refcursor -- Êóðñîð ñî ñâåäåíèÿìè î ïðîñðî÷åííûõ ñîîáùåíèÿõ ñåðâèñà
|
||||
)
|
||||
is
|
||||
/* Локальные константы */
|
||||
@ -1298,11 +1298,12 @@ create or replace package body PKG_EXS as
|
||||
end if;
|
||||
end loop;
|
||||
/* Возвращаем ответ в виде курсора */
|
||||
open RCSERVICE_QUEUE_EXPIRED for
|
||||
select NCNT "nCnt",
|
||||
open RCSERVICE_QUEUE_EXPIRED_INFO for
|
||||
select REXSSERVICE.RN "nId",
|
||||
NCNT "nCnt",
|
||||
DECODE(NCNT, 0, null, SPREF || SINFO_LIST) "sInfoList"
|
||||
from DUAL;
|
||||
end SERVICE_QUEUE_EXPIRED_GET;
|
||||
end SERVICE_QUEUE_EXPIRED_INFO_GET;
|
||||
|
||||
/* Получение контекста сервиса */
|
||||
procedure SERVICE_CTX_GET
|
||||
|
@ -115,6 +115,17 @@ exports.dbConnectorModule = new Schema({
|
||||
"Не реализована функция постановки в очередь задания на аутентификацию сервиса (putServiceAuthInQueue)"
|
||||
}
|
||||
},
|
||||
//Получение информации о просроченных сообщениях обмена сервиса
|
||||
getServiceExpiredQueueInfo: {
|
||||
use: { validateAsyncFunctionType },
|
||||
required: true,
|
||||
message: {
|
||||
validateAsyncFunctionType:
|
||||
"Функция получения информации о просроченных сообщениях обмена сервиса (getServiceExpiredQueueInfo) имеет неверный формат (ожидалось - AsyncFunction)",
|
||||
required:
|
||||
"Не реализована функция получения информации о просроченных сообщениях обмена сервиса (getServiceExpiredQueueInfo)"
|
||||
}
|
||||
},
|
||||
//Протоколирование работы сервиса
|
||||
log: {
|
||||
use: { validateAsyncFunctionType },
|
||||
|
@ -256,3 +256,35 @@ exports.ServiceCtx = new Schema({
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//Схема валидации сведений о просроченных сообщениях обмена сервиса
|
||||
exports.ServiceExpiredQueueInfo = new Schema({
|
||||
//Идентификатор сервиса
|
||||
nId: {
|
||||
type: Number,
|
||||
required: true,
|
||||
message: {
|
||||
type: "Идентификатор сервиса (nId) имеет некорректный тип данных (ожидалось - Number)",
|
||||
required: "Не указан идентификатор сервиса (nId)"
|
||||
}
|
||||
},
|
||||
//Количество просроченных сообщений обмена
|
||||
nCnt: {
|
||||
type: Number,
|
||||
required: true,
|
||||
message: {
|
||||
type: "Количество просроченных сообщений обмена (nCnt) имеет некорректный тип данных (ожидалось - Number)",
|
||||
required: "Не указано количество просроченных сообщений обмена (nCnt)"
|
||||
}
|
||||
},
|
||||
//Информация о просроченных сообщениях обмена
|
||||
sInfoList: {
|
||||
type: String,
|
||||
required: true,
|
||||
message: {
|
||||
type:
|
||||
"Информация о просроченных сообщениях обмена (sInfoList) имеет некорректный тип данных (ожидалось - String)",
|
||||
required: "Не указана информация о просроченных сообщениях обмена (sInfoList)"
|
||||
}
|
||||
}
|
||||
}).validator({ required: val => val === null || val === 0 || val });
|
||||
|
@ -163,6 +163,19 @@ exports.putServiceAuthInQueue = new Schema({
|
||||
}
|
||||
});
|
||||
|
||||
//Схема валидации параметров функции получения информации о просроченных сообщениях обмена сервиса
|
||||
exports.getServiceExpiredQueueInfo = new Schema({
|
||||
//Идентификатор сервиса
|
||||
nServiceId: {
|
||||
type: Number,
|
||||
required: true,
|
||||
message: {
|
||||
type: path => `Идентификатор сервиса (${path}) имеет некорректный тип данных (ожидалось - Number)`,
|
||||
required: path => `Не указан идентификатор сервиса (${path})`
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
//Схема валидации параметров функции записи в журнал работы сервиса
|
||||
exports.putLog = new Schema({
|
||||
//Тип сообщения журнала работы сервиса
|
||||
|
@ -152,6 +152,24 @@ const putServiceAuthInQueue = async prms => {
|
||||
}
|
||||
};
|
||||
|
||||
//Получение информации о просроченных сообщениях обмена сервиса
|
||||
const getServiceExpiredQueueInfo = async prms => {
|
||||
try {
|
||||
let res = await prms.connection.execute(
|
||||
"BEGIN PKG_EXS.SERVICE_QUEUE_EXPIRED_INFO_GET(NEXSSERVICE => :NEXSSERVICE, RCSERVICE_QUEUE_EXPIRED_INFO => :RCSERVICE_QUEUE_EXPIRED_INFO); END;",
|
||||
{
|
||||
NEXSSERVICE: prms.nServiceId,
|
||||
RCSERVICE_QUEUE_EXPIRED_INFO: { type: oracledb.CURSOR, dir: oracledb.BIND_OUT }
|
||||
},
|
||||
{ outFormat: oracledb.OBJECT }
|
||||
);
|
||||
let rows = await readCursorData(res.outBinds.RCSERVICE_QUEUE_EXPIRED_INFO);
|
||||
return rows[0];
|
||||
} catch (e) {
|
||||
throw new Error(e.message);
|
||||
}
|
||||
};
|
||||
|
||||
//Запись в протокол работы
|
||||
const log = async prms => {
|
||||
try {
|
||||
@ -369,6 +387,7 @@ exports.setServiceContext = setServiceContext;
|
||||
exports.clearServiceContext = clearServiceContext;
|
||||
exports.isServiceAuth = isServiceAuth;
|
||||
exports.putServiceAuthInQueue = putServiceAuthInQueue;
|
||||
exports.getServiceExpiredQueueInfo = getServiceExpiredQueueInfo;
|
||||
exports.log = log;
|
||||
exports.getQueue = getQueue;
|
||||
exports.putQueue = putQueue;
|
||||
|
Loading…
x
Reference in New Issue
Block a user