Compare commits

..

No commits in common. "e2afde4398c1aafbf64b2163f7de90cf0e5cf544" and "127a7afe3fa14a61dbbc61aa8c562d0b81f8785a" have entirely different histories.

3 changed files with 2 additions and 40 deletions

View File

@ -24,8 +24,7 @@ const {
getMQTTConnectionSettings,
getKafkaBroker,
getKafkaAuth,
getURLProtocol,
wrapPromiseTimeout
getURLProtocol
} = require("./utils"); //Вспомогательные функции
const { ServerError } = require("./server_errors"); //Типовая ошибка
const objOutQueueProcessorSchema = require("../models/obj_out_queue_processor"); //Схема валидации сообщений обмена с бработчиком очереди исходящих сообщений
@ -360,12 +359,8 @@ const appProcess = async prms => {
default:
//Установим флаг возврата полного ответа (и тела и заголовков)
options.resolveWithFullResponse = true;
//Установим таймаут подключения
options.timeout = prms.function.nTimeoutConn ? prms.function.nTimeoutConn : null;
//Отправляем запрос
serverResp = prms.function.nTimeoutAsynch
? await wrapPromiseTimeout(prms.function.nTimeoutAsynch, rqp(options))
: await rqp(options);
serverResp = await rqp(options);
break;
}
//Сохраняем полученный ответ

View File

@ -403,22 +403,6 @@ const getURLProtocol = sURL => {
return sURL.substring(0, 1) === "/" ? SPROTOCOL_HTTP : new URL(sURL).protocol.slice(0, -1);
};
//Обёртывание промиса в таймаут исполнения
const wrapPromiseTimeout = (timeout, promise) => {
if (!timeout) return promise;
let timeoutPid;
const timeoutPromise = new Promise((resolve, reject) => {
const sMessage = `Истёк интервал ожидания (${timeout} мс) завершения асинхронного процесса.`;
let e = new Error(sMessage);
e.error = sMessage;
timeoutPid = setTimeout(() => reject(e), timeout);
});
return Promise.race([promise, timeoutPromise]).finally(() => {
if (promise.promise().isPending()) promise.cancel();
if (timeoutPid) clearTimeout(timeoutPid);
});
};
//-----------------
// Интерфейс модуля
//-----------------
@ -444,4 +428,3 @@ exports.getMQTTConnectionSettings = getMQTTConnectionSettings;
exports.getKafkaBroker = getKafkaBroker;
exports.getKafkaAuth = getKafkaAuth;
exports.getURLProtocol = getURLProtocol;
exports.wrapPromiseTimeout = wrapPromiseTimeout;

View File

@ -398,21 +398,5 @@ exports.ServiceFunction = new Schema({
validateErrNtfMail: path =>
`Неверный формат списка адресов E-Mail для оповещения об ошибке исполнения сообщения очереди для функции обработки (${path}), для указания нескольких адресов следует использовать запятую в качестве разделителя (без пробелов)`
}
},
//Таймаут сетевого подключения (мс)
nTimeoutConn: {
type: Number,
required: false,
message: {
type: path => `Таймаут сетевого подключения функции сервиса (${path}) имеет некорректный тип данных (ожидалось - Number)`
}
},
//Таймаут асинхронной отправки (мс)
nTimeoutAsynch: {
type: Number,
required: false,
message: {
type: path => `Таймаут асинхронной отправки функции сервиса (${path}) имеет некорректный тип данных (ожидалось - Number)`
}
}
});