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