Compare commits
No commits in common. "e2afde4398c1aafbf64b2163f7de90cf0e5cf544" and "127a7afe3fa14a61dbbc61aa8c562d0b81f8785a" have entirely different histories.
e2afde4398
...
127a7afe3f
@ -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;
|
||||
}
|
||||
//Сохраняем полученный ответ
|
||||
|
@ -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;
|
||||
|
@ -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)`
|
||||
}
|
||||
}
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user