Перевод применения объекта "Buffer" с конструктора "new" (устаревший) на статический метод "Buffer.from", циклы "for" с асинхронными выховами переписаны на "for of"
This commit is contained in:
parent
5e7f737cfb
commit
a2fcbf11b3
@ -530,7 +530,7 @@ class DBConnector extends EventEmitter {
|
||||
if (!sCheckResult) {
|
||||
//Подготовим параметры
|
||||
let putQueueData = _.cloneDeep(prms);
|
||||
putQueueData.blMsg = prms.blMsg ? prms.blMsg : new Buffer("");
|
||||
putQueueData.blMsg = prms.blMsg ? prms.blMsg : Buffer.from("");
|
||||
putQueueData.connection = this.connection;
|
||||
//Исполняем действие в БД
|
||||
try {
|
||||
@ -666,7 +666,7 @@ class DBConnector extends EventEmitter {
|
||||
if (!sCheckResult) {
|
||||
//Подготовим параметры
|
||||
let setQueueMsgData = _.cloneDeep(prms);
|
||||
if (!setQueueMsgData.blMsg) setQueueMsgData.blMsg = new Buffer("");
|
||||
if (!setQueueMsgData.blMsg) setQueueMsgData.blMsg = Buffer.from("");
|
||||
setQueueMsgData.connection = this.connection;
|
||||
//Исполняем действие в БД
|
||||
try {
|
||||
@ -770,7 +770,7 @@ class DBConnector extends EventEmitter {
|
||||
if (!sCheckResult) {
|
||||
//Подготовим параметры
|
||||
let setQueueRespData = _.cloneDeep(prms);
|
||||
if (!setQueueRespData.blResp) setQueueRespData.blResp = new Buffer("");
|
||||
if (!setQueueRespData.blResp) setQueueRespData.blResp = Buffer.from("");
|
||||
setQueueRespData.connection = this.connection;
|
||||
//Исполняем действие в БД
|
||||
try {
|
||||
|
@ -119,7 +119,7 @@ class InQueue extends EventEmitter {
|
||||
blMsg = prms.req.body && !_.isEmpty(prms.req.body) ? prms.req.body : null;
|
||||
} else {
|
||||
//Для GET - параметры запроса
|
||||
if (!_.isEmpty(prms.req.query)) blMsg = new Buffer(JSON.stringify(prms.req.query));
|
||||
if (!_.isEmpty(prms.req.query)) blMsg = Buffer.from(JSON.stringify(prms.req.query));
|
||||
}
|
||||
//Определимся с параметрами сообщения полученными от внешней системы
|
||||
options = {
|
||||
|
@ -108,28 +108,26 @@ class Notifier extends EventEmitter {
|
||||
//Выставим флаг - цикл опроса активен
|
||||
this.bInSendLoop = true;
|
||||
//Обходим уведомления для отправки
|
||||
for (let i = 0; i < this.messages.length; i++) {
|
||||
for (let message of this.messages) {
|
||||
//Работаем только по неотправленным уведомлениям
|
||||
if (!this.messages[i].bSent) {
|
||||
if (!message.bSent) {
|
||||
try {
|
||||
//Отправляем
|
||||
await sendMail({
|
||||
mail: this.mail,
|
||||
sTo: this.messages[i].sTo,
|
||||
sSubject: this.messages[i].sSubject,
|
||||
sMessage: this.messages[i].sMessage
|
||||
sTo: message.sTo,
|
||||
sSubject: message.sSubject,
|
||||
sMessage: message.sMessage
|
||||
});
|
||||
//Протоколируем отправку
|
||||
await this.logger.info(
|
||||
`Сообщение с темой "${this.messages[i].sSubject}" отпрвлено ${this.messages[i].sTo}`
|
||||
);
|
||||
await this.logger.info(`Сообщение с темой "${message.sSubject}" отпрвлено ${message.sTo}`);
|
||||
//Говорим, что отправлено
|
||||
this.messages[i].bSent = true;
|
||||
message.bSent = true;
|
||||
} catch (e) {
|
||||
await this.logger.error(
|
||||
`Ошибка отправки сообщения с темой "${this.messages[i].sSubject}" для ${
|
||||
this.messages[i].sTo
|
||||
}: ${makeErrorText(e)}`
|
||||
`Ошибка отправки сообщения с темой "${message.sSubject}" для ${message.sTo}: ${makeErrorText(
|
||||
e
|
||||
)}`
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -204,9 +204,7 @@ class OutQueue extends EventEmitter {
|
||||
//Отправим уведомление об ошибке отработки в почту
|
||||
await this.notifier.addMessage({
|
||||
sTo: func.sErrNtfMail,
|
||||
sSubject: `Ошибка обработки исходящего сообщения ${
|
||||
prms.queue.nId
|
||||
} сервером приложений для функции "${func.sCode}" сервиса "${service.sCode}"`,
|
||||
sSubject: `Ошибка обработки исходящего сообщения ${prms.queue.nId} сервером приложений для функции "${func.sCode}" сервиса "${service.sCode}"`,
|
||||
sMessage: prms.queue.sExecMsg
|
||||
});
|
||||
} else {
|
||||
@ -372,24 +370,24 @@ class OutQueue extends EventEmitter {
|
||||
//Если есть сообщения
|
||||
if (Array.isArray(outMsgs) && outMsgs.length > 0) {
|
||||
//Обходим их
|
||||
for (let i = 0; i < outMsgs.length; i++) {
|
||||
for (let outMsg of outMsgs) {
|
||||
//И запускаем обработчики
|
||||
if (!this.isInProgress({ nQueueId: outMsgs[i].nId })) {
|
||||
if (!this.isInProgress({ nQueueId: outMsg.nId })) {
|
||||
try {
|
||||
this.processMessage({ queue: outMsgs[i] });
|
||||
this.processMessage({ queue: outMsg });
|
||||
} catch (e) {
|
||||
//Фиксируем ошибку обработки сервером приложений - статус сообщения
|
||||
let queue = await this.dbConn.setQueueState({
|
||||
nQueueId: outMsgs[i].nId,
|
||||
nQueueId: outMsg.nId,
|
||||
sExecMsg: makeErrorText(e),
|
||||
nIncExecCnt: NINC_EXEC_CNT_YES,
|
||||
nExecState:
|
||||
outMsgs[i].nExecCnt + 1 < outMsgs[i].nRetryAttempts
|
||||
? outMsgs[i].nExecState
|
||||
outMsg.nExecCnt + 1 < outMsg.nRetryAttempts
|
||||
? outMsg.nExecState
|
||||
: objQueueSchema.NQUEUE_EXEC_STATE_ERR
|
||||
});
|
||||
//Фиксируем ошибку обработки сервером приложений - запись в протокол работы сервера приложений
|
||||
await this.logger.error(makeErrorText(e), { nQueueId: outMsgs[i].nId });
|
||||
await this.logger.error(makeErrorText(e), { nQueueId: outMsg.nId });
|
||||
//Если исполнение завершилось полностью и с ошибкой - расскажем об этом
|
||||
if (queue.nExecState == objQueueSchema.NQUEUE_EXEC_STATE_ERR)
|
||||
await this.notifyMessageProcessError({ queue });
|
||||
|
@ -252,7 +252,7 @@ const appProcess = async prms => {
|
||||
options.resolveWithFullResponse = true;
|
||||
let serverResp = await rqp(options);
|
||||
//Сохраняем полученный ответ
|
||||
prms.queue.blResp = new Buffer(serverResp.body || "");
|
||||
prms.queue.blResp = Buffer.from(serverResp.body || "");
|
||||
await dbConn.setQueueResp({
|
||||
nQueueId: prms.queue.nId,
|
||||
blResp: prms.queue.blResp,
|
||||
|
@ -103,21 +103,21 @@ class ServiceAvailableController extends EventEmitter {
|
||||
this.bInDetectingLoop = true;
|
||||
try {
|
||||
//Обходим список сервисов для проверки
|
||||
for (let i = 0; i < this.services.length; i++) {
|
||||
for (let service of this.services) {
|
||||
//Если сервис надо проверять на доступность и это сервис для отправки исходящих сообщений
|
||||
if (
|
||||
this.services[i].nUnavlblNtfSign == objServiceSchema.NUNAVLBL_NTF_SIGN_YES &&
|
||||
this.services[i].nSrvType == objServiceSchema.NSRV_TYPE_SEND
|
||||
service.nUnavlblNtfSign == objServiceSchema.NUNAVLBL_NTF_SIGN_YES &&
|
||||
service.nSrvType == objServiceSchema.NSRV_TYPE_SEND
|
||||
) {
|
||||
try {
|
||||
//Отправляем проверочный запрос
|
||||
await rqp({ url: this.services[i].sSrvRoot, timeout: NNETWORK_CHECK_TIMEOUT });
|
||||
await rqp({ url: service.sSrvRoot, timeout: NNETWORK_CHECK_TIMEOUT });
|
||||
//Запрос прошел - фиксируем дату доступности и сбрасываем дату недоступности
|
||||
this.services[i].dAvailable = new Date();
|
||||
this.services[i].dUnAvailable = null;
|
||||
service.dAvailable = new Date();
|
||||
service.dUnAvailable = null;
|
||||
} catch (e) {
|
||||
//Зафиксируем дату и время недоступности
|
||||
this.services[i].dUnAvailable = new Date();
|
||||
service.dUnAvailable = new Date();
|
||||
//Сформируем текст ошибки в зависимости от того, что случилось
|
||||
let sError = "Неожиданная ошибка удалённого сервиса";
|
||||
if (e.error) {
|
||||
@ -129,71 +129,61 @@ class ServiceAvailableController extends EventEmitter {
|
||||
if (e.response) {
|
||||
//Нам нужны только ошибки сервера
|
||||
if (String(e.response.statusCode).startsWith("5")) {
|
||||
sError = `Ошибка работы удалённого сервиса: ${e.response.statusCode} - ${
|
||||
e.response.statusMessage
|
||||
}`;
|
||||
sError = `Ошибка работы удалённого сервиса: ${e.response.statusCode} - ${e.response.statusMessage}`;
|
||||
} else {
|
||||
//Остальное - клиентские ошибки, но сервер-то вроде отвечает, поэтому - пропускаем
|
||||
this.services[i].dUnAvailable = null;
|
||||
service.dUnAvailable = null;
|
||||
}
|
||||
}
|
||||
//Фиксируем ошибку проверки в протоколе (только если она действительно была)
|
||||
if (this.services[i].dUnAvailable) {
|
||||
if (service.dUnAvailable) {
|
||||
await this.logger.warn(
|
||||
`При проверке доступности сервиса ${this.services[i].sCode}: ${makeErrorText(
|
||||
`При проверке доступности сервиса ${service.sCode}: ${makeErrorText(
|
||||
new ServerError(SERR_SERVICE_UNAVAILABLE, sError)
|
||||
)} (адрес - ${this.services[i].sSrvRoot})`,
|
||||
{ nServiceId: this.services[i].nId }
|
||||
)} (адрес - ${service.sSrvRoot})`,
|
||||
{ nServiceId: service.nId }
|
||||
);
|
||||
}
|
||||
}
|
||||
//Если есть даты - будем проверять
|
||||
if (this.services[i].dUnAvailable && this.services[i].dAvailable) {
|
||||
if (service.dUnAvailable && service.dAvailable) {
|
||||
//Выясним как долго он уже недоступен (в минутах)
|
||||
let nDiffMs = this.services[i].dUnAvailable - this.services[i].dAvailable;
|
||||
let nDiffMs = service.dUnAvailable - service.dAvailable;
|
||||
let nDiffMins = Math.round(((nDiffMs % 86400000) % 3600000) / 60000);
|
||||
//Если простой больше указанного в настройках - будем оповещать по почте
|
||||
if (nDiffMins >= this.services[i].nUnavlblNtfTime) {
|
||||
if (nDiffMins >= service.nUnavlblNtfTime) {
|
||||
//Подготовим сообщение для уведомления
|
||||
let sMessage = `Сервис недоступен более ${
|
||||
this.services[i].nUnavlblNtfTime
|
||||
} мин. (${nDiffMins} мин. с момента запуска сервера приложений).\nАдрес сервиса: ${
|
||||
this.services[i].sSrvRoot
|
||||
}`;
|
||||
let sMessage = `Сервис недоступен более ${service.nUnavlblNtfTime} мин. (${nDiffMins} мин. с момента запуска сервера приложений).\nАдрес сервиса: ${service.sSrvRoot}`;
|
||||
//Положим уведомление в протокол работы сервера приложений
|
||||
await this.logger.error(sMessage, { nServiceId: this.services[i].nId });
|
||||
await this.logger.error(sMessage, { nServiceId: service.nId });
|
||||
//И в очередь уведомлений
|
||||
await this.notifier.addMessage({
|
||||
sTo: this.services[i].sUnavlblNtfMail,
|
||||
sSubject: `Удалённый сервис ${this.services[i].sCode} неотвечает на запросы`,
|
||||
sTo: service.sUnavlblNtfMail,
|
||||
sSubject: `Удалённый сервис ${service.sCode} неотвечает на запросы`,
|
||||
sMessage
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
//Если сервис надо проверять на доступность то проверим так же - есть ли у него неотработанные сообщения обмена
|
||||
if (this.services[i].nUnavlblNtfSign == objServiceSchema.NUNAVLBL_NTF_SIGN_YES) {
|
||||
if (service.nUnavlblNtfSign == objServiceSchema.NUNAVLBL_NTF_SIGN_YES) {
|
||||
try {
|
||||
let res = await this.dbConn.getServiceExpiredQueueInfo({
|
||||
nServiceId: this.services[i].nId
|
||||
nServiceId: service.nId
|
||||
});
|
||||
//Если у сервиса есть просроченные сообщения - будет отправлять информацию об этом
|
||||
if (res.nCnt > 0) {
|
||||
//Отправляем уведомление
|
||||
await this.notifier.addMessage({
|
||||
sTo: this.services[i].sUnavlblNtfMail,
|
||||
sSubject: `Для сервиса ${
|
||||
this.services[i].sCode
|
||||
} зафиксированы просроченные сообщения обмена (${res.nCnt} ед.)`,
|
||||
sTo: service.sUnavlblNtfMail,
|
||||
sSubject: `Для сервиса ${service.sCode} зафиксированы просроченные сообщения обмена (${res.nCnt} ед.)`,
|
||||
sMessage: res.sInfoList
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
await this.logger.error(
|
||||
`При проверке просроченных сообщений сервиса ${this.services[i].sCode}: ${makeErrorText(
|
||||
e
|
||||
)}`,
|
||||
{ nServiceId: this.services[i].nId }
|
||||
`При проверке просроченных сообщений сервиса ${service.sCode}: ${makeErrorText(e)}`,
|
||||
{ nServiceId: service.nId }
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ const before = async prms => {
|
||||
let cnt = 1;
|
||||
let row;
|
||||
while ((row = await rs.getRow())) {
|
||||
prms.res.write(Buffer(`${cnt > 1 ? "," : ""}${JSON.stringify(row)}`));
|
||||
prms.res.write(Buffer.from(`${cnt > 1 ? "," : ""}${JSON.stringify(row)}`));
|
||||
cnt++;
|
||||
}
|
||||
//Завершаем передачу
|
||||
|
@ -88,7 +88,7 @@ const before = async prms => {
|
||||
}
|
||||
//Возвращаем отконвертированное в качестве тела запроса
|
||||
return {
|
||||
blMsg: new Buffer(requestXML)
|
||||
blMsg: Buffer.from(requestXML)
|
||||
};
|
||||
}
|
||||
};
|
||||
@ -125,7 +125,7 @@ const after = async prms => {
|
||||
"content-type": SHEADER_RESP_CONTENT_TYPE_JSON
|
||||
}
|
||||
},
|
||||
blResp: new Buffer(parseRes ? JSON.stringify(parseRes) : prms.queue.blResp)
|
||||
blResp: Buffer.from(parseRes ? JSON.stringify(parseRes) : prms.queue.blResp)
|
||||
};
|
||||
}
|
||||
};
|
||||
|
@ -120,7 +120,7 @@ const afterConnect = async prms => {
|
||||
if (!resp.error) {
|
||||
//Сохраним полученный токен доступа в контекст сервиса
|
||||
return {
|
||||
blResp: new Buffer(resp.result),
|
||||
blResp: Buffer.from(resp.result),
|
||||
sCtx: resp.result,
|
||||
dCtxExp: addHours(new Date(), 23)
|
||||
};
|
||||
@ -154,7 +154,7 @@ const beforeDocParse = async prms => {
|
||||
simple: false,
|
||||
func: obj.method
|
||||
},
|
||||
blMsg: new Buffer(JSON.stringify(obj))
|
||||
blMsg: Buffer.from(JSON.stringify(obj))
|
||||
};
|
||||
} catch (e) {
|
||||
throw Error(e);
|
||||
@ -176,7 +176,7 @@ const afterDocParse = async prms => {
|
||||
}
|
||||
//Возврат результата
|
||||
return {
|
||||
blResp: new Buffer(resu)
|
||||
blResp: Buffer.from(resu)
|
||||
};
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user