Добавлен параметр "nIncExecCnt - инкремент счетчика исполнений" в процедуру установки статуса сообщения очереди обмена

This commit is contained in:
Mikhail Chechnev 2018-11-29 22:12:11 +03:00
parent 12b5e524c1
commit 92b5153dfd
3 changed files with 29 additions and 4 deletions

View File

@ -9,8 +9,8 @@
const _ = require("lodash"); //Работа с массивами и объектами const _ = require("lodash"); //Работа с массивами и объектами
const EventEmitter = require("events"); //Обработчик пользовательских событий const EventEmitter = require("events"); //Обработчик пользовательских событий
const { ServerError } = require("../core/server_errors"); //Типовая ошибка const { ServerError } = require("./server_errors"); //Типовая ошибка
const { makeModuleFullPath, validateObject } = require("../core/utils"); //Вспомогательные функции const { makeModuleFullPath, validateObject } = require("./utils"); //Вспомогательные функции
const prmsDBConnectorSchema = require("../models/prms_db_connector"); //Схемы валидации параметров функций модуля const prmsDBConnectorSchema = require("../models/prms_db_connector"); //Схемы валидации параметров функций модуля
const intfDBConnectorModuleSchema = require("../models/intf_db_connector_module"); //Схема валидации интерфейса модуля взаимодействия с БД const intfDBConnectorModuleSchema = require("../models/intf_db_connector_module"); //Схема валидации интерфейса модуля взаимодействия с БД
const objServicesSchema = require("../models/obj_services"); //Схема валидации списка сервисов const objServicesSchema = require("../models/obj_services"); //Схема валидации списка сервисов
@ -21,7 +21,7 @@ const {
SERR_MODULES_BAD_INTERFACE, SERR_MODULES_BAD_INTERFACE,
SERR_OBJECT_BAD_INTERFACE, SERR_OBJECT_BAD_INTERFACE,
SERR_MODULES_NO_MODULE_SPECIFIED SERR_MODULES_NO_MODULE_SPECIFIED
} = require("../core/constants"); //Глобальные константы } = require("./constants"); //Глобальные константы
//---------- //----------
// Константы // Константы

View File

@ -22,10 +22,22 @@ const {
NQUEUE_EXEC_STATE_ERR NQUEUE_EXEC_STATE_ERR
} = require("./obj_queue"); //Схемы валидации сообщения очереди обмена } = require("./obj_queue"); //Схемы валидации сообщения очереди обмена
//----------
// Константы
//----------
//Признак инкремента количества попыток исполнения позиции очереди
NINC_EXEC_CNT_NO = 0; //Не инкрементировать
NINC_EXEC_CNT_YES = 1; //Инкрементировать
//------------------ //------------------
// Интерфейс модуля // Интерфейс модуля
//------------------ //------------------
//Константы
exports.NINC_EXEC_CNT_NO = NINC_EXEC_CNT_NO;
exports.NINC_EXEC_CNT_YES = NINC_EXEC_CNT_YES;
//Схема валидации параметров конструктора //Схема валидации параметров конструктора
exports.DBConnector = new Schema({ exports.DBConnector = new Schema({
//Параметры подключения к БД //Параметры подключения к БД
@ -148,5 +160,17 @@ exports.setQueueState = new Schema({
type: "Сообщение обработчика (sExecMsg) имеет некорректный тип данных (ожидалось - String)", type: "Сообщение обработчика (sExecMsg) имеет некорректный тип данных (ожидалось - String)",
required: "Не указано сообщени обработчика (sExecMsg)" required: "Не указано сообщени обработчика (sExecMsg)"
} }
},
//Флаг инкремента количества исполнений
nIncExecCnt: {
type: Number,
enum: [NINC_EXEC_CNT_NO, NINC_EXEC_CNT_YES],
required: false,
message: {
type:
"Флаг инкремента количества исполнений (nIncExecCnt) имеет некорректный тип данных (ожидалось - Number)",
enum: "Значение флага инкремента количества исполнений (nIncExecCnt) не поддерживается",
required: "Не указан флаг икремента количества исполнений (nIncExecCnt)"
}
} }
}); });

View File

@ -180,11 +180,12 @@ const putQueueIncoming = async prms => {};
const setQueueState = async prms => { const setQueueState = async prms => {
try { try {
let res = await prms.connection.execute( 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;", "BEGIN PKG_EXS.QUEUE_EXEC_STATE_SET(NEXSQUEUE => :NEXSQUEUE, NEXEC_STATE => :NEXEC_STATE, SEXEC_MSG => :SEXEC_MSG, NINC_EXEC_CNT => :NINC_EXEC_CNT, RCQUEUE => :RCQUEUE); END;",
{ {
NEXSQUEUE: prms.nQueueId, NEXSQUEUE: prms.nQueueId,
NEXEC_STATE: prms.nExecState, NEXEC_STATE: prms.nExecState,
SEXEC_MSG: prms.sExecMsg, SEXEC_MSG: prms.sExecMsg,
NINC_EXEC_CNT: prms.nIncExecCnt,
RCQUEUE: { type: oracledb.CURSOR, dir: oracledb.BIND_OUT } RCQUEUE: { type: oracledb.CURSOR, dir: oracledb.BIND_OUT }
}, },
{ {