Метод установки состояния позиции очереди и асинхронное чтение записей из курсора
This commit is contained in:
parent
d2fe21ea1b
commit
3c4bb16b0c
@ -33,6 +33,26 @@ const SLOG_STATE_INF = "INF"; //Информация (строковый код)
|
|||||||
const SLOG_STATE_WRN = "WRN"; //Предупреждение (строковые коды)
|
const SLOG_STATE_WRN = "WRN"; //Предупреждение (строковые коды)
|
||||||
const SLOG_STATE_ERR = "ERR"; //Ошибка (строковый код)
|
const SLOG_STATE_ERR = "ERR"; //Ошибка (строковый код)
|
||||||
|
|
||||||
|
// Состояния исполнения записей очереди сервиса
|
||||||
|
const NQUEUE_EXEC_STATE_INQUEUE = 0; //Поставлено в очередь
|
||||||
|
const NQUEUE_EXEC_STATE_APP = 1; //Обрабатывается сервером приложений
|
||||||
|
const NQUEUE_EXEC_STATE_APP_OK = 2; //Успешно обработано сервером приложений
|
||||||
|
const NQUEUE_EXEC_STATE_APP_ERR = 3; //Ошибка обработки сервером приложений
|
||||||
|
const NQUEUE_EXEC_STATE_DB = 4; //Обрабатывается СУБД
|
||||||
|
const NQUEUE_EXEC_STATE_DB_OK = 5; //Успешно обработано СУБД
|
||||||
|
const NQUEUE_EXEC_STATE_DB_ERR = 6; //Ошибка обработки СУБД
|
||||||
|
const NQUEUE_EXEC_STATE_OK = 7; //Обработано успешно
|
||||||
|
const NQUEUE_EXEC_STATE_ERR = 8; //Обработано с ошибками
|
||||||
|
const SQUEUE_EXEC_STATE_INQUEUE = "INQUEUE"; //Поставлено в очередь
|
||||||
|
const SQUEUE_EXEC_STATE_APP = "APP"; //Обрабатывается сервером приложений
|
||||||
|
const SQUEUE_EXEC_STATE_APP_OK = "APP_OK"; //Успешно обработано сервером приложений
|
||||||
|
const SQUEUE_EXEC_STATE_APP_ERR = "APP_ERR"; //Ошибка обработки сервером приложений
|
||||||
|
const SQUEUE_EXEC_STATE_DB = "DB"; //Обрабатывается СУБД
|
||||||
|
const SQUEUE_EXEC_STATE_DB_OK = "DB_OK"; //Успешно обработано СУБД
|
||||||
|
const SQUEUE_EXEC_STATE_DB_ERR = "DB_ERR"; //Ошибка обработки СУБД
|
||||||
|
const SQUEUE_EXEC_STATE_OK = "OK"; //Обработано успешно
|
||||||
|
const SQUEUE_EXEC_STATE_ERR = "ERR"; //Обработано с ошибками
|
||||||
|
|
||||||
//------------
|
//------------
|
||||||
// Тело модуля
|
// Тело модуля
|
||||||
//------------
|
//------------
|
||||||
@ -72,6 +92,23 @@ const disconnect = async prms => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//Чтение данных из курсора
|
||||||
|
const readCursorData = cursor => {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
let queryStream = cursor.toQueryStream();
|
||||||
|
let rows = [];
|
||||||
|
queryStream.on("data", row => {
|
||||||
|
rows.push(row);
|
||||||
|
});
|
||||||
|
queryStream.on("error", err => {
|
||||||
|
reject(new Error(err.message));
|
||||||
|
});
|
||||||
|
queryStream.on("close", () => {
|
||||||
|
resolve(rows);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
//Получение списка сервисов
|
//Получение списка сервисов
|
||||||
const getServices = prms => {
|
const getServices = prms => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
@ -231,7 +268,24 @@ const getQueueOutgoing = prms => {
|
|||||||
const putQueueIncoming = prms => {};
|
const putQueueIncoming = prms => {};
|
||||||
|
|
||||||
//Установка значения в сообщении очереди
|
//Установка значения в сообщении очереди
|
||||||
const setQueueValue = prms => {};
|
const setQueueState = async prms => {
|
||||||
|
try {
|
||||||
|
let res = await prms.connection.execute(
|
||||||
|
"BEGIN PKG_EXS.QUEUE_EXEC_STATE_SET(NEXSQUEUE => :NEXSQUEUE, NEXEC_STATE => :NEXEC_STATE, SEXEC_MSG => :SEXEC_MSG, RCQUEUE => :RCQUEUE); END;",
|
||||||
|
{
|
||||||
|
NEXSQUEUE: prms.nQueueId,
|
||||||
|
NEXEC_STATE: prms.nExecState,
|
||||||
|
SEXEC_MSG: prms.sExecMsg,
|
||||||
|
RCQUEUE: { type: oracledb.CURSOR, dir: oracledb.BIND_OUT }
|
||||||
|
},
|
||||||
|
{ outFormat: oracledb.OBJECT, autoCommit: true, fetchInfo: { bMsg: { type: oracledb.BUFFER } } }
|
||||||
|
);
|
||||||
|
let rows = await readCursorData(res.outBinds.RCQUEUE);
|
||||||
|
return rows;
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error(e.message);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
//-----------------
|
//-----------------
|
||||||
// Интерфейс модуля
|
// Интерфейс модуля
|
||||||
@ -244,4 +298,4 @@ exports.getServiceFunctions = getServiceFunctions;
|
|||||||
exports.log = log;
|
exports.log = log;
|
||||||
exports.getQueueOutgoing = getQueueOutgoing;
|
exports.getQueueOutgoing = getQueueOutgoing;
|
||||||
exports.putQueueIncoming = putQueueIncoming;
|
exports.putQueueIncoming = putQueueIncoming;
|
||||||
exports.setQueueValue = setQueueValue;
|
exports.setQueueState = setQueueState;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user