Перевод применения объекта "Buffer" с конструктора "new" (устаревший) на статический метод "Buffer.from", циклы "for" с асинхронными выховами переписаны на "for of"

This commit is contained in:
Mikhail Chechnev 2021-03-12 21:22:23 +03:00
parent 5e7f737cfb
commit a2fcbf11b3
9 changed files with 55 additions and 69 deletions

View File

@ -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 {

View File

@ -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 = {

View File

@ -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)}` )}`
); );
} }
} }

View File

@ -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 });

View File

@ -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,

View File

@ -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 }
); );
} }
} }

View File

@ -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++;
} }
//Завершаем передачу //Завершаем передачу

View File

@ -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)
}; };
} }
}; };

View File

@ -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)
}; };
}; };