Просто немного тестов и модификация конфига для отладки

This commit is contained in:
Mikhail Chechnev 2019-01-10 17:25:24 +03:00
parent c352f9f487
commit 2c6e24f91e
2 changed files with 37 additions and 138 deletions

View File

@ -14,7 +14,7 @@ let dbConnect = {
//Пароль пользователя БД //Пароль пользователя БД
sPassword: "parus", sPassword: "parus",
//Строка подключения к БД //Строка подключения к БД
sConnectString: "DEMOP_CITKSERV_WAN", sConnectString: "DEMOP_CITKSERV",
//Наименование сервера приложений в сессии БД //Наименование сервера приложений в сессии БД
sSessionAppName: "PARUS$ExchangeServer", sSessionAppName: "PARUS$ExchangeServer",
//Подключаемый модуль обслуживания БД (низкоуровневые функции работы с СУБД) //Подключаемый модуль обслуживания БД (низкоуровневые функции работы с СУБД)
@ -26,7 +26,7 @@ let outGoing = {
//Количество одновременно обрабатываемых исходящих сообщений //Количество одновременно обрабатываемых исходящих сообщений
nMaxWorkers: 3, nMaxWorkers: 3,
//Интервал проверки наличия исходящих сообщений (мс) //Интервал проверки наличия исходящих сообщений (мс)
nCheckTimeout: 1 nCheckTimeout: 5000
}; };
//Параметры обработки очереди входящих сообщений //Параметры обработки очереди входящих сообщений

171
test.js
View File

@ -3,149 +3,48 @@
Песочница для тестов Песочница для тестов
*/ */
require("module-alias/register"); require("module-alias/register"); //Поддержка псевонимов при подключении модулей
const db = require("./core/db_connector"); //Взаимодействие с БД const _ = require("lodash");
const cfg = require("./config"); //Настройки сервера приложений const db = require("./core/db_connector");
const rqp = require("request-promise"); const cfg = require("./config");
const nodemailer = require("nodemailer"); const utl = require("./core/utils");
const childProcess = require("child_process"); //Работа с дочерними процессами const servSchema = require("./models/obj_service");
const objOutQueueProcessorSchema = require("./models/obj_out_queue_processor"); //Схема валидации сообщений обмена с бработчиком очереди исходящих сообщений const Schema = require("validate"); //Схемы валидации
const prmsOutQueueProcessorSchema = require("./models/prms_out_queue_processor"); //Схема валидации параметров функций бработчика очереди исходящих сообщений
const { getAppSrvFunction, makeModuleFullPath, validateObject } = require("./core/utils"); //Вспомогательные функции
/* /*
let proc = childProcess.fork("core/out_queue_processor", { silent: true }); const NDETECTING_LOOP_INTERVAL = 10;
*/ let nTimeOut = null;
const getServices = async () => {
let d = new db.DBConnector({ connectSettings: cfg.dbConnect });
try {
await d.connect();
//let r = await d.getServices();
//let q = await d.getOutgoing({ nPortionSize: 1 });
await d.setQueueState({ nQueueId: 2, nExecState: 5, nIncExecCnt: 1 });
await d.disconnect();
} catch (e) {
await d.disconnect();
console.log(e.sCode + " " + e.sMessage);
}
};
/*
proc.on("message", m => {
console.log("SUBPROCESS MESSAGE: " + m);
if (m == "ready") {
console.log("DONE!!!");
proc.kill();
} else {
console.log("ERROR!!!");
proc.kill();
}
});
proc.on("error", e => { const restartDetectingLoop = () => {
console.log("SUBPROCESS ERROR: " + e.message); console.log(`BEGIN restartDetectingLoop`);
proc.kill(); nTimeOut = setTimeout(notifyDetectingLoop, NDETECTING_LOOP_INTERVAL);
}); console.log(`END restartDetectingLoop`);
proc.on("uncaughtException", e => {
console.log("SUBPROCESS EXCEPTION: " + e.message);
proc.kill();
});
proc.on("exit", code => {
console.log("SUBPROCESS EXIT: " + code);
});
*/
//proc.send({ nId: "12345" });
//getServices();
//let a = {};
//let sCheckResult = validateObject(a, prmsOutQueueProcessorSchema.sendOKResult, "Параметры sendOKResult");
//console.log(sCheckResult);
//let b = new Buffer("");
//console.log(b);
/*
const getSomeData = async () => {
try {
res = await rqp({
//url: "http://123",
url: "http://212.5.81.211:7778",
//url:
// "http://212.5.81.211:7777/prj/PARUS.UDO_PKG_HTTP_PROC_W.PROCESS2?CPRMS={SACTION:GET_AGENT, NAGENT:184429}",
method: "GET"
});
console.log(res);
} catch (e) {
let sError = "Неожиданная ошибка";
if (e.error) {
sError = `Ошибка передачи данных: ${e.error.code}`;
}
if (e.response) {
sError = `Ошибка удалённого сервиса: ${e.response.statusCode} - ${e.response.statusMessage}`;
}
console.log(`При проверке доступности удалённого сервиса: ${sError}`);
}
}; };
getSomeData(); const someAsyncAction = i => {
return new Promise((res, rej) => {
setTimeout(() => {
const sendErrorByMail = e => { console.log(`Сделал I=${i}`);
return new Promise((resolve, reject) => { res();
//Параметры подключения }, 100);
let transporter = nodemailer.createTransport({
host: "smtp.mail.ru",
port: 465,
secure: true,
auth: {
user: "chechnev@citk-parus.ru",
pass: "Rxt67A_"
}
});
//Параметры сообщения
let mailOptions = {
from: '"Сервис интеграции с WEB-API" <chechnev@citk-parus.ru>', // sender address
to: "chechnev2@citk-parus.ru", // list of receivers
subject: "Сервис недоступен", // Subject line
text: "Сервис простаивает более 1-й минуты"
};
//Отправляем сообщение
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
reject(`${error.code}: ${error.response}`);
} else {
if (info.rejected && Array.isArray(info.rejected) && info.rejected.length > 0) {
reject(`Сообщение не доствлено адресатам: ${info.rejected.join("; ")}`);
} else {
resolve(info);
}
}
});
}); });
}; };
sendErrorByMail("Текст") //Опрос очереди уведомлений
.then(i => { const notifyDetectingLoop = async () => {
console.log(i); console.log(`BEGIN notifyDetectingLoop`);
}) for (let i = 0; i <= 5; i++) {
.catch(e => { console.log(`Делаю I=${i}`);
console.log(e); await someAsyncAction(i);
}); }
restartDetectingLoop();
console.log(`END notifyDetectingLoop`);
};
notifyDetectingLoop();
*/ */
const chFn = val => { const errors = servSchema.ServiceExpiredQueueInfo.validate(
if (val) { { nId: 123, nCnt: 0, sInfoList: "dsdfsdf" },
let r = /^[a-z0-9_.-]+(.js)\/[a-z0-9_.-]+$/; { strip: false }
return r.test(val.toLowerCase()); );
} console.log(errors);
return true;
};
console.log(chFn("123sDf@mail.rU,wert@sSs.ru"));
console.log(chFn("parus_ag@n_info.js/buildAgentQuery"));
console.log(chFn("parus_agn_info.jsparseAgentInfo"));
console.log(chFn("parus_atoleforeBillPrintSend"));
console.log(chFn("parus_at/ol.js/afterBillPrintSend"));
console.log(chFn("parus_at\\ol.js/beforeBillSend"));
console.log(chFn("parus_atol.js/"));