ЦИТК-255 - Добавление параметра времени ожидания отработки входящего сообщения
This commit is contained in:
parent
f75269ddc7
commit
061b7f2fad
@ -71,8 +71,8 @@ let inComing = {
|
|||||||
nPoolMax: 10,
|
nPoolMax: 10,
|
||||||
//Шаг инкремента подключений к БД в пуле обработчика входящих сообщений
|
//Шаг инкремента подключений к БД в пуле обработчика входящих сообщений
|
||||||
nPoolIncrement: 0,
|
nPoolIncrement: 0,
|
||||||
//Время ожидания отработки входящего сообщения (мс)
|
//Время ожидания отработки входящего сообщения (мс, 0 - не применять (не отменяет таймаут по умолчанию, который может быть установлен платформой))
|
||||||
nTimeout: 120000
|
nTimeout: 0
|
||||||
};
|
};
|
||||||
|
|
||||||
//Параметры подключения к Kafka
|
//Параметры подключения к Kafka
|
||||||
|
@ -93,8 +93,6 @@ class InQueue extends EventEmitter {
|
|||||||
//Внешние подключения
|
//Внешние подключения
|
||||||
this.kafkaConnections = [];
|
this.kafkaConnections = [];
|
||||||
this.mqttConnections = [];
|
this.mqttConnections = [];
|
||||||
//Время ожидания отработки входящего сообщения
|
|
||||||
this.nTimeout = prms.inComing.nTimeout;
|
|
||||||
} else {
|
} else {
|
||||||
throw new ServerError(SERR_OBJECT_BAD_INTERFACE, sCheckResult);
|
throw new ServerError(SERR_OBJECT_BAD_INTERFACE, sCheckResult);
|
||||||
}
|
}
|
||||||
@ -348,7 +346,10 @@ class InQueue extends EventEmitter {
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
//Или расскажем об ошибке
|
//Или расскажем об ошибке
|
||||||
throw new ServerError(SERR_WEB_SERVER, "Истекло время ожидания обработки входящего запроса.");
|
throw new ServerError(
|
||||||
|
SERR_WEB_SERVER,
|
||||||
|
"Истекло время ожидания обработки входящего запроса. Канал закрыт. Клиенту был отправлен ответ."
|
||||||
|
);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
//Тема и текст уведомления об ошибке
|
//Тема и текст уведомления об ошибке
|
||||||
@ -554,18 +555,21 @@ class InQueue extends EventEmitter {
|
|||||||
if (req.headers["content-type"] === "false") req.headers["content-type"] = "application/octet-stream";
|
if (req.headers["content-type"] === "false") req.headers["content-type"] = "application/octet-stream";
|
||||||
next();
|
next();
|
||||||
});
|
});
|
||||||
//Конфигурируем сервер - устанавливаем таймаут обработки сообщений
|
//Если требуется установить таймаут на обработку сообщений
|
||||||
this.webApp.use((req, res, next) => {
|
if (this.inComing.nTimeout !== 0) {
|
||||||
//Устанавливаем таймаут на ответ от сервера
|
//Конфигурируем сервер - устанавливаем таймаут обработки сообщений
|
||||||
res.setTimeout(this.nTimeout, () => {
|
this.webApp.use((req, res, next) => {
|
||||||
//Формируем ошибку
|
//Устанавливаем таймаут на ответ от сервера
|
||||||
let err = new Error("Истекло время ожидания формирования ответа для завершения текущего запроса.");
|
res.setTimeout(this.inComing.nTimeout, () => {
|
||||||
err.status = 504;
|
//Формируем ошибку
|
||||||
//Отправляем ошибку
|
let err = new Error("Истекло время ожидания формирования ответа для завершения текущего запроса.");
|
||||||
next(err);
|
err.status = 504;
|
||||||
|
//Отправляем ошибку
|
||||||
|
next(err);
|
||||||
|
});
|
||||||
|
next();
|
||||||
});
|
});
|
||||||
next();
|
}
|
||||||
});
|
|
||||||
//Конфигурируем сервер - обработка тела сообщения
|
//Конфигурируем сервер - обработка тела сообщения
|
||||||
this.webApp.use(bodyParser.raw({ limit: `${this.inComing.nMsgMaxSize}mb`, type: "*/*" }));
|
this.webApp.use(bodyParser.raw({ limit: `${this.inComing.nMsgMaxSize}mb`, type: "*/*" }));
|
||||||
//Конфигурируем сервер - обходим все сервисы, работающие на приём сообщений
|
//Конфигурируем сервер - обходим все сервисы, работающие на приём сообщений
|
||||||
|
Loading…
x
Reference in New Issue
Block a user