From 5388c77ae1b9df7868fe6d70c277ec165873b62d Mon Sep 17 00:00:00 2001 From: Mikhail Chechnev Date: Sat, 1 Dec 2018 22:26:28 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D1=87=D0=B8=D1=82=D1=8B=D0=B2=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=D0=B0?= =?UTF-8?q?=D1=87=D0=B0=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=87?= =?UTF-8?q?=D0=B8=D0=BA=D1=83=20=D0=B8=D1=81=D1=85=D0=BE=D0=B4=D1=8F=D1=89?= =?UTF-8?q?=D0=B8=D1=85=20=D1=81=D0=BF=D0=B8=D1=81=D0=BA=D0=B0=20=D1=81?= =?UTF-8?q?=D0=B5=D1=80=D0=B2=D0=B8=D1=81=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/app.js | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/core/app.js b/core/app.js index 45e7def..8044017 100644 --- a/core/app.js +++ b/core/app.js @@ -30,6 +30,8 @@ class ParusAppServer { this.outQ = null; //Флаг остановки сервера this.bStopping = false; + //Список обслуживаемых сервисов + this.services = []; //Привяжем методы к указателю на себя для использования в обработчиках событий this.onDBConnected = this.onDBConnected.bind(this); this.onDBDisconnected = this.onDBDisconnected.bind(this); @@ -42,6 +44,29 @@ class ParusAppServer { this.logger.setDBConnector(this.dbConn, true); //Сообщим, что подключились к БД await this.logger.info("Сервер приложений подключен к БД"); + //Считываем список сервисов + await this.logger.info("Запрашиваю информацию о сервисах..."); + try { + this.services = await this.dbConn.getServices(); + } catch (e) { + await this.logger.error("Ошибка получения списка сервисов: " + e.sCode + ": " + e.sMessage); + await this.stop(); + return; + } + await this.logger.info("Список сервисов получен"); + //Запускаем обслуживание очереди исходящих + await this.logger.info("Запуск обработчика очереди исходящих сообщений..."); + try { + this.outQ.startProcessing(this.services); + } catch (e) { + await this.logger.error( + "Ошибка запуска обработчика очереди исходящих сообщений: " + e.sCode + ": " + e.sMessage + ); + await this.stop(); + return; + } + //Рапортуем, что запустились + await this.logger.info("Сервер приложений запущен"); } //При отключении от БД async onDBDisconnected() { @@ -67,7 +92,7 @@ class ParusAppServer { await this.dbConn.disconnect(); process.exit(0); } catch (e) { - await this.logger.error("Ошибка отключения от БД: " + e.sCODE + ": " + e.sMessage); + await this.logger.error("Ошибка отключения от БД: " + e.sCode + ": " + e.sMessage); process.exit(1); } } else { @@ -89,7 +114,7 @@ class ParusAppServer { //Создаём обработчик очереди исходящих this.outQ = new oq.OutQueue({ outGoing: prms.config.outGoing, dbConn: this.dbConn, logger: this.logger }); //Скажем что инициализировали - await this.logger.info("Сервер приложение инициализирован"); + await this.logger.info("Сервер приложений инициализирован"); } else { throw new ServerError(SERR_OBJECT_BAD_INTERFACE, sCheckResult); } @@ -111,11 +136,6 @@ class ParusAppServer { //Подключаемся к БД await this.logger.info("Подключение сервера приложений к БД..."); await this.dbConn.connect(); - //Запускаем обслуживание очереди исходящих - await this.logger.info("Запуск обработчика очереди исходящих сообщений..."); - this.outQ.startProcessing(); - //Рапортуем, что запустились - await this.logger.info("Сервер приложений запущен"); } //Останов сервера async stop() {