exodus-framework 2.0.894 → 2.0.896

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,7 +7,9 @@ type TStaticService<S> = NonConstructor<typeof Service> & {
7
7
  declare abstract class Service<D = any> extends Managed {
8
8
  static instance: Service;
9
9
  private eCom;
10
- protected attemptDelay: number;
10
+ protected startAttemptDelay: number;
11
+ protected maxStartAttempts: number;
12
+ protected currentStartAttempts: number;
11
13
  constructor();
12
14
  static singleton<S extends Service>(this: TStaticService<S>): S;
13
15
  static getService<S extends Service>(this: TStaticService<S>): S;
@@ -21,6 +23,8 @@ declare abstract class Service<D = any> extends Managed {
21
23
  onStartFail(): Promise<void>;
22
24
  onStartSuccessfully(): Promise<void>;
23
25
  onExodusStarted(): Promise<void>;
26
+ onExodusMasterStarted(): Promise<void>;
27
+ onExodusClusterStarted(): Promise<void>;
24
28
  protected sendToServiceCluster(clusterId: number, event: string, data: D): void;
25
29
  protected sendToServiceMaster(event: string, data: D): void;
26
30
  protected onServiceMasterReceived(_worker: Worker, _eventKey: string, _data: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/app/classes/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,KAAK,cAAc,CAAC,CAAC,IAAI,cAAc,CAAC,OAAO,OAAO,CAAC,GAAG;IACxD,QAAQ,CAAC,CAAC;CACX,CAAC;AAWF,uBAAe,OAAO,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,OAAO;IAC7C,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,IAAI,CAA6B;IACzC,SAAS,CAAC,YAAY,SAAQ;;IAgB9B,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAEjC,CAAC;IAU3B,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IAY/C,aAAa;cAyBV,mBAAmB;cASnB,oBAAoB;IAYvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAW3B,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAGjC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAQlC,cAAc;IAMd,WAAW;IACX,mBAAmB;IAQnB,eAAe;IAW5B,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAWxE,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAapD,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAWhF,SAAS,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAWzD,aAAa,IAAI,OAAO;IAIxB,eAAe;CAGvB;AACD,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/app/classes/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,KAAK,cAAc,CAAC,CAAC,IAAI,cAAc,CAAC,OAAO,OAAO,CAAC,GAAG;IACxD,QAAQ,CAAC,CAAC;CACX,CAAC;AAWF,uBAAe,OAAO,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,OAAO;IAC7C,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,IAAI,CAA6B;IACzC,SAAS,CAAC,iBAAiB,SAAQ;IACnC,SAAS,CAAC,gBAAgB,SAAK;IAC/B,SAAS,CAAC,oBAAoB,SAAK;;IAgBnC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAEjC,CAAC;IAU3B,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IAY/C,aAAa;cAyBV,mBAAmB;cASnB,oBAAoB;IAYvB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAW3B,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAGjC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAQlC,cAAc;IAQd,WAAW;IAQX,mBAAmB;IASnB,eAAe;IAcf,qBAAqB;IAMrB,sBAAsB;IAWnC,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAYxE,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAapD,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAWhF,SAAS,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAWzD,aAAa,IAAI,OAAO;IAIxB,eAAe;CAGvB;AACD,eAAe,OAAO,CAAC"}
@@ -21,7 +21,9 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
21
21
  class Service extends _managed.default {
22
22
  static instance;
23
23
  eCom;
24
- attemptDelay = 1000; // Tempo de espera para cada tentativa de inicialização
24
+ startAttemptDelay = 1000; // Tempo de espera para cada tentativa de inicialização
25
+ maxStartAttempts = 3; // Numero de tentativas máximas para iniciar o serviço
26
+ currentStartAttempts = 1; // Numero de tentativas atual para iniciar o serviço
25
27
 
26
28
  constructor() {
27
29
  super();
@@ -118,22 +120,51 @@ class Service extends _managed.default {
118
120
  *
119
121
  * @memberof Service
120
122
  */
121
- async onStartAttempt() {}
123
+ async onStartAttempt() {
124
+ this.currentStartAttempts += 1;
125
+ }
122
126
  /**
123
127
  * Executado quando a inicialização deste serviço falhar
124
128
  *
125
129
  * @memberof Service
126
130
  */
127
- async onStartFail() {}
128
- async onStartSuccessfully() {}
129
-
131
+ async onStartFail() {
132
+ // this.log(`Erro on init this service.`, 'danger');
133
+ }
134
+ /**
135
+ * Quando o serviço inicializar com sucesso
136
+ *
137
+ * @memberof Service
138
+ */
139
+ async onStartSuccessfully() {
140
+ this.currentStartAttempts = 1;
141
+ }
130
142
  /**
131
143
  * Quando todos os serviços foram carregados
132
144
  * Pode ser usado para eliminar dados utilizados na inicialização
133
145
  *
134
146
  * @memberof Service
135
147
  */
136
- async onExodusStarted() {}
148
+ async onExodusStarted() {
149
+ if (this.isMaster()) {
150
+ await this.onExodusMasterStarted();
151
+ }
152
+ if (this.isCluster()) {
153
+ await this.onExodusClusterStarted();
154
+ }
155
+ }
156
+ /**
157
+ * Mesmo que onExodusStarted mas no master
158
+ *
159
+ * @memberof Service
160
+ */
161
+ async onExodusMasterStarted() {}
162
+ /**
163
+ * Mesmo que onExodusStarted mas no cluster
164
+ *
165
+ * @memberof Service
166
+ */
167
+ async onExodusClusterStarted() {}
137
168
 
138
169
  /**
139
170
  * Enviar dados para a instância deste serviço no cluster
@@ -147,6 +178,7 @@ class Service extends _managed.default {
147
178
  sendToServiceCluster(clusterId, event, data) {
148
179
  this.eCom.sendMessageToCluster(clusterId, event, data);
149
180
  }
181
+
150
182
  /**
151
183
  * Enviar dados para a instancia deste serviço no master
152
184
  *
@@ -191,10 +223,10 @@ class Service extends _managed.default {
191
223
  * @memberof Service
192
224
  */
193
225
  isStartFailed() {
194
- return false;
226
+ return this.currentStartAttempts > this.maxStartAttempts;
195
227
  }
196
228
  getAttemptDelay() {
197
- return this.attemptDelay;
229
+ return this.startAttemptDelay;
198
230
  }
199
231
  }
200
232
  var _default = exports.default = Service;
@@ -1 +1 @@
1
- {"version":3,"file":"exodus.d.ts","sourceRoot":"","sources":["../../src/app/exodus.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,OAAO,EAAE,MAAM,GAAG,CAAC;AAC1C,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAExC,OAAO,YAAY,MAAM,YAAY,CAAC;AAUtC,cAAM,MAAO,SAAQ,OAAO;IAC1B,OAAO,CAAC,QAAQ,CAAY;gBAEhB,QAAQ,EAAE,YAAY;IAOrB,KAAK;IAelB,OAAO,CAAC,cAAc;IAef,QAAQ,CAAC,OAAO,EAAE,OAAO,OAAO;YAGzB,YAAY;YAiBZ,YAAY;CAoB3B;AACD,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"exodus.d.ts","sourceRoot":"","sources":["../../src/app/exodus.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,OAAO,EAAE,MAAM,GAAG,CAAC;AAC1C,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAExC,OAAO,YAAY,MAAM,YAAY,CAAC;AAUtC,cAAM,MAAO,SAAQ,OAAO;IAC1B,OAAO,CAAC,QAAQ,CAAY;gBAEhB,QAAQ,EAAE,YAAY;IAOrB,KAAK;IAwBlB,OAAO,CAAC,cAAc;IAef,QAAQ,CAAC,OAAO,EAAE,OAAO,OAAO;YAGzB,YAAY;YAiBZ,YAAY;CAoB3B;AACD,eAAe,MAAM,CAAC"}
package/lib/app/exodus.js CHANGED
@@ -28,12 +28,18 @@ class Exodus extends _managed.default {
28
28
  _event.default.Start();
29
29
  if (this.isMaster()) {
30
30
  this.log(`Iniciando em Master ${process.pid}`);
31
- await this.initServices();
32
- this.createClusters();
31
+ if (await this.initServices()) {
32
+ await Promise.all(this.services.map(async s => {
33
+ !s.isStartFailed() && (await s.onExodusStarted());
34
+ }));
35
+ this.createClusters();
36
+ }
33
37
  }
34
38
  if (this.isCluster()) {
35
39
  this.log(`Iniciando em Cluster ${this.getWorkId()}`);
36
- await this.initServices();
40
+ if (await this.initServices()) {
41
+ this.services.forEach(s => s.onExodusStarted());
42
+ }
37
43
  }
38
44
  }
39
45
 
@@ -5,7 +5,9 @@ import { THttpResponse } from '../contracts/http';
5
5
  declare class ExpressService extends Service {
6
6
  private server;
7
7
  private mainRouter;
8
+ onServiceClusterInit(): Promise<void>;
8
9
  onStartCluster(): Promise<boolean>;
10
+ onExodusClusterStarted(): Promise<void>;
9
11
  getHttpServer(): http.Server<typeof http.IncomingMessage, typeof http.ServerResponse>;
10
12
  sendResponse(objResponse: THttpResponse, res: Response, next?: NextFunction): void;
11
13
  responseTypeMiddleware(req: Request, res: Response, next: NextFunction): void;
@@ -1 +1 @@
1
- {"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../src/services/express.ts"],"names":[],"mappings":"AACA,OAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGlE,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAI7B,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAqB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGrE,cAAM,cAAe,SAAQ,OAAO;IAClC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,UAAU,CAAS;IAGd,cAAc;IA0B3B,aAAa;IAIb,YAAY,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,YAAY;IAiC3E,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY;IAMtE,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ;IAWzC,0BAA0B,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY;IAUtF,2BAA2B,QACpB,GAAG,OACH,OAAO,OACP,QAAQ,KAEV,YAAY,mBAoBf;IAEI,YAAY,CAAC,MAAM,EAAE,MAAM;IAyBjC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM;CAGrC;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../src/services/express.ts"],"names":[],"mappings":"AACA,OAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGlE,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAI7B,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAqB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGrE,cAAM,cAAe,SAAQ,OAAO;IAClC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,UAAU,CAAS;IAGd,oBAAoB;IAIpB,cAAc;IAoBd,sBAAsB;IAS5B,aAAa;IAIb,YAAY,CAAC,WAAW,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,YAAY;IAiC3E,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY;IAMtE,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ;IAWzC,0BAA0B,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY;IAUtF,2BAA2B,QAC3B,GAAG,OACH,OAAO,OACP,QAAQ,KAEV,YAAY,mBAoBf;IAEW,YAAY,CAAC,MAAM,EAAE,MAAM;IAyBxC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM;CAGrC;AAED,eAAe,cAAc,CAAC"}
@@ -24,37 +24,41 @@ class ExpressService extends _service.default {
24
24
  mainRouter;
25
25
 
26
26
  //!Deve ser iniciado no cluster, pois no master causa erro de port bind
27
+ async onServiceClusterInit() {
28
+ await super.onServiceClusterInit();
29
+ if (!this.mainRouter) throw new Error('Need router'); //!sem router
30
+ }
27
31
  async onStartCluster() {
28
- return new Promise(resolve => {
29
- if (!this.mainRouter) throw new Error('Need router'); //!sem router
30
-
31
- const expss = (0, _express.default)();
32
- this.server = http.createServer(expss);
33
- expss.use('/public', _express.default.static(_core.default.settings.getHttp().publicPath));
34
- expss.use((0, _expressRequestsLogger.default)({
35
- logger: (0, _logger.default)()
36
- }));
37
- expss.set('query parser', str => _qs.default.parse(str));
38
- expss.use(this.responseTypeMiddleware.bind(this));
39
- expss.use(_express.default.json({
40
- limit: '10mb'
41
- }));
42
- expss.use(_express.default.urlencoded({
43
- extended: true,
44
- limit: '10mb'
45
- }));
46
- expss.use((0, _cors.default)({
47
- origin: '*'
48
- }));
49
- expss.use(this.mainRouter);
50
- expss.use(this.handleAuthorizationFailure.bind(this));
51
- expss.use(this.handleNotFoud.bind(this));
52
- expss.use(this.handleRequestProcessFailure.bind(this));
53
- this.server.listen(_core.default.settings.getAppication().port, () => {
54
- (0, _logger.default)().info(`servidor iniciado na porta: ${_core.default.settings.getAppication().port}`);
55
- this.log(`🌍 Http Server Listering On: ${_core.default.settings.getAppication().port}`, 'success');
56
- resolve(true);
57
- });
32
+ await super.onStartCluster();
33
+ const expss = (0, _express.default)();
34
+ this.server = http.createServer(expss);
35
+ expss.use('/public', _express.default.static(_core.default.settings.getHttp().publicPath));
36
+ expss.use((0, _expressRequestsLogger.default)({
37
+ logger: (0, _logger.default)()
38
+ }));
39
+ expss.set('query parser', str => _qs.default.parse(str));
40
+ expss.use(this.responseTypeMiddleware.bind(this));
41
+ expss.use(_express.default.json({
42
+ limit: '10mb'
43
+ }));
44
+ expss.use(_express.default.urlencoded({
45
+ extended: true,
46
+ limit: '10mb'
47
+ }));
48
+ expss.use((0, _cors.default)({
49
+ origin: '*'
50
+ }));
51
+ expss.use(this.mainRouter);
52
+ expss.use(this.handleAuthorizationFailure.bind(this));
53
+ expss.use(this.handleNotFoud.bind(this));
54
+ expss.use(this.handleRequestProcessFailure.bind(this));
55
+ return true;
56
+ }
57
+ async onExodusClusterStarted() {
58
+ await super.onExodusClusterStarted();
59
+ this.server.listen(_core.default.settings.getAppication().port, () => {
60
+ (0, _logger.default)().info(`servidor iniciado na porta: ${_core.default.settings.getAppication().port}`);
61
+ this.log(`🌍 Http Server Listering On: ${_core.default.settings.getAppication().port}`, 'success');
58
62
  });
59
63
  }
60
64
  getHttpServer() {
@@ -96,7 +100,7 @@ class ExpressService extends _service.default {
96
100
  next();
97
101
  }
98
102
 
99
- //* Handlers
103
+ //* Handler errors
100
104
  handleNotFoud(req, res) {
101
105
  this.sendResponse({
102
106
  message: 'Endereço não encontrado',
@@ -1,7 +1,7 @@
1
1
  import Service from '../app/classes/service';
2
2
  import { TFilePathSettings } from '../contracts/settings';
3
3
  declare class FileService extends Service {
4
- onServiceInit(): Promise<void>;
4
+ onStart(): Promise<boolean>;
5
5
  private checkPaths;
6
6
  private cleanTemp;
7
7
  save(filename: string, destiny: keyof TFilePathSettings): Promise<string | boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/services/file.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAK7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,cAAM,WAAY,SAAQ,OAAO;IACzB,aAAa;YAIL,UAAU;YAKV,SAAS;IASjB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB;IAavD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB;IAW/D,SAAS,CAAC,MAAM,EAAE,MAAM,iBAAiB,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI;CAIxE;AACD,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/services/file.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAK7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,cAAM,WAAY,SAAQ,OAAO;IAClB,OAAO;YAKN,UAAU;YAKV,SAAS;IASjB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB;IAavD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB;IAW/D,SAAS,CAAC,MAAM,EAAE,MAAM,iBAAiB,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI;CAIxE;AACD,eAAe,WAAW,CAAC"}
@@ -13,8 +13,9 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
13
13
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
15
  class FileService extends _service.default {
16
- async onServiceInit() {
16
+ async onStart() {
17
17
  await Promise.all([this.checkPaths(), this.cleanTemp()]);
18
+ return true;
18
19
  }
19
20
  async checkPaths() {
20
21
  for (const path of Object.values(_app.Core.settings.getAppication().filePaths)) {
@@ -10,13 +10,10 @@ declare class RabbitMQService extends Service {
10
10
  private queueName;
11
11
  private isReconnecting;
12
12
  private isConnected;
13
- private connectionRetries;
14
- private connectionMaxRetries;
15
13
  onServiceClusterInit(): Promise<void>;
16
14
  onStartCluster(): Promise<boolean>;
17
- onStartAttempt(): Promise<void>;
15
+ onExodusClusterStarted(): Promise<void>;
18
16
  onStartFail(): Promise<void>;
19
- isStartFailed(): boolean;
20
17
  connect(): Promise<boolean>;
21
18
  registerHandles(): Promise<void>;
22
19
  private setupErrorHandles;
@@ -1 +1 @@
1
- {"version":3,"file":"rabitmq.d.ts","sourceRoot":"","sources":["../../src/services/rabitmq.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGtD,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,cAAc,CAAC;AAUtB,cAAM,eAAgB,SAAQ,OAAO;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,oBAAoB,CAA0D;IAEtF,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,oBAAoB,CAAK;IAE3B,oBAAoB;IAUb,cAAc;IAId,cAAc;IAId,WAAW;IAIjB,aAAa;IAIP,OAAO;IAgCP,eAAe;IAQ5B,OAAO,CAAC,iBAAiB;IAYnB,WAAW,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAoBzF,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc;IA2BjD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,wBAAwB;IAI/C,aAAa,CAAC,CAAC,SAAS,MAAM,oBAAoB,EACvD,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAY9B,cAAc,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAAE,KAAK,EAAE,CAAC;IAW7D,YAAY,CACjB,CAAC,SAAS,MAAM,oBAAoB,EACpC,CAAC,SAAS,MAAM,oBAAoB,EACpC,IAAI,EAAE;QACN,IAAI,EAAE;YAAE,KAAK,EAAE,CAAC,CAAC;YAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAA;SAAE,CAAC;QAClD,MAAM,EAAE;YACN,KAAK,EAAE,CAAC,CAAC;YACT,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;YACpC,SAAS,EAAE,MAAM,IAAI,CAAC;YACtB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;KACH;CAkBF;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"rabitmq.d.ts","sourceRoot":"","sources":["../../src/services/rabitmq.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGtD,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,cAAc,CAAC;AAUtB,cAAM,eAAgB,SAAQ,OAAO;IACnC,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,oBAAoB,CAA0D;IAEtF,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;IAEf,oBAAoB;IAcpB,cAAc;IAMd,sBAAsB;IAMtB,WAAW;IAKX,OAAO;IA+BP,eAAe;IAM5B,OAAO,CAAC,iBAAiB;IAYnB,WAAW,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAoBzF,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc;IA2BjD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,wBAAwB;IAI/C,aAAa,CAAC,CAAC,SAAS,MAAM,oBAAoB,EACvD,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAY9B,cAAc,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAAE,KAAK,EAAE,CAAC;IAW7D,YAAY,CACjB,CAAC,SAAS,MAAM,oBAAoB,EACpC,CAAC,SAAS,MAAM,oBAAoB,EACpC,IAAI,EAAE;QACN,IAAI,EAAE;YAAE,KAAK,EAAE,CAAC,CAAC;YAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAA;SAAE,CAAC;QAClD,MAAM,EAAE;YACN,KAAK,EAAE,CAAC,CAAC;YACT,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;YACpC,SAAS,EAAE,MAAM,IAAI,CAAC;YACtB,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;KACH;CAkBF;AAED,eAAe,eAAe,CAAC"}
@@ -27,12 +27,14 @@ class RabbitMQService extends _service.default {
27
27
  queueName;
28
28
  isReconnecting = false; // Flag para evitar múltiplas tentativas simultâneas de reconexão
29
29
  isConnected = false; // Flag para controlar o estado da conexão
30
- connectionRetries = 1; // quantidade de tentativas de reconexão
31
- connectionMaxRetries = 3; // quantidade de tentativas de reconexão
32
30
 
33
31
  async onServiceClusterInit() {
32
+ await super.onServiceClusterInit();
34
33
  if (!this.mainRouter) throw new Error('Need router'); //!sem router
35
34
 
35
+ //Start params
36
+ this.startAttemptDelay = 5 * 1000;
37
+ this.maxStartAttempts = 3;
36
38
  this.exchangeName = _app.Core.settings.getMessaging().exchanges.main;
37
39
  this.queueName = _app.Core.settings.getAppication().appId;
38
40
  this.eventCustomListeners = new Map();
@@ -40,24 +42,25 @@ class RabbitMQService extends _service.default {
40
42
  ..._messaging.default,
41
43
  ...this.mainRouter
42
44
  }; // # Register native router
43
- this.attemptDelay = 5 * 1000;
44
45
  }
45
46
  async onStartCluster() {
47
+ await super.onStartCluster();
46
48
  return this.connect();
47
49
  }
48
- async onStartAttempt() {
49
- this.connectionRetries += 1;
50
+ async onExodusClusterStarted() {
51
+ await super.onExodusClusterStarted();
52
+ await this.channel.consume(this.queueName, this.consumeFromQueue.bind(this), {
53
+ noAck: false
54
+ });
50
55
  }
51
56
  async onStartFail() {
57
+ await super.onStartFail();
52
58
  this.log(`Not possible to connect RabitMQ`, 'danger');
53
59
  }
54
- isStartFailed() {
55
- return this.connectionRetries > this.connectionMaxRetries;
56
- }
57
60
  async connect() {
58
61
  if (this.isConnected) return true;
59
62
  if (this.isReconnecting) return false;
60
- this.log(`⌛️ Connecting to Rabbit-MQ Server: ${this.connectionRetries}/${this.connectionMaxRetries}`);
63
+ this.log(`⌛️ Connecting to Rabbit-MQ Server: ${this.currentStartAttempts}/${this.maxStartAttempts}`);
61
64
  this.isReconnecting = true;
62
65
  try {
63
66
  const query = `amqp://${_app.Core.settings.getMessaging().user}:${_app.Core.settings.getMessaging().pass}@${_app.Core.settings.getMessaging().host}:5672`;
@@ -72,7 +75,6 @@ class RabbitMQService extends _service.default {
72
75
  });
73
76
  this.isConnected = true;
74
77
  this.isReconnecting = false;
75
- this.connectionRetries = 0;
76
78
  this.setupErrorHandles();
77
79
  await this.registerHandles();
78
80
  this.log(`✅ Rabbit MQ Connection is ready`);
@@ -87,9 +89,6 @@ class RabbitMQService extends _service.default {
87
89
  for (const topic of Object.keys(this.mainRouter)) {
88
90
  await this.channel.bindQueue(this.queueName, this.exchangeName, topic);
89
91
  }
90
- await this.channel.consume(this.queueName, this.consumeFromQueue.bind(this), {
91
- noAck: false
92
- });
93
92
  }
94
93
  setupErrorHandles() {
95
94
  this.channel.on('error', err => {
@@ -4,13 +4,9 @@ declare class RedisService extends Service {
4
4
  private client;
5
5
  private isReconnecting;
6
6
  private isConnected;
7
- private connectionRetries;
8
- private connectionMaxRetries;
9
7
  onServiceInit(): Promise<void>;
10
8
  onStart(): Promise<boolean>;
11
- onStartAttempt(): Promise<void>;
12
9
  onStartFail(): Promise<void>;
13
- isStartFailed(): boolean;
14
10
  private connect;
15
11
  private setupErrorHandles;
16
12
  setValue(key: string, value: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/services/redis.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAUlD,cAAM,YAAa,SAAQ,OAAO;IAChC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,oBAAoB,CAAK;IAEpB,aAAa;IAIb,OAAO;IAIP,cAAc;IAId,WAAW;IAIjB,aAAa;YAIN,OAAO;IA4BrB,OAAO,CAAC,iBAAiB;IAQnB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGnD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI7C,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGtC,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM;CAGlC;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/services/redis.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAUlD,cAAM,YAAa,SAAQ,OAAO;IAChC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,WAAW,CAAS;IAEf,aAAa;IAOb,OAAO;IAMP,WAAW;YAMV,OAAO;IA2BrB,OAAO,CAAC,iBAAiB;IAQnB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGnD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI7C,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGtC,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM;CAGlC;AAED,eAAe,YAAY,CAAC"}
@@ -21,28 +21,24 @@ class RedisService extends _service.default {
21
21
  client;
22
22
  isReconnecting = false; // Flag para evitar múltiplas tentativas simultâneas de reconexão
23
23
  isConnected = false; // Flag para controlar o estado da conexão
24
- connectionRetries = 1; // quantidade de tentativas de reconexão
25
- connectionMaxRetries = 3; // quantidade de tentativas de reconexão
26
24
 
27
25
  async onServiceInit() {
28
- this.attemptDelay = 5 * 1000;
26
+ await super.onServiceInit();
27
+ this.startAttemptDelay = 5 * 1000;
28
+ this.maxStartAttempts = 3;
29
29
  }
30
30
  async onStart() {
31
+ await super.onStart();
31
32
  return this.connect();
32
33
  }
33
- async onStartAttempt() {
34
- this.connectionRetries += 1;
35
- }
36
34
  async onStartFail() {
35
+ await super.onStartFail();
37
36
  this.log(`Not possible to connect Redis`, 'danger');
38
37
  }
39
- isStartFailed() {
40
- return this.connectionRetries > this.connectionMaxRetries;
41
- }
42
38
  async connect() {
43
39
  if (this.isConnected) return true;
44
40
  if (this.isReconnecting) return false;
45
- this.log(`⌛️ Connecting to Redis Server: ${this.connectionRetries}/${this.connectionMaxRetries}`);
41
+ this.log(`⌛️ Connecting to Redis Server: ${this.currentStartAttempts}/${this.maxStartAttempts}`);
46
42
  this.isReconnecting = true;
47
43
  try {
48
44
  const queryConnect = `redis://${_app.Core.settings.getCache().host}:${_app.Core.settings.getCache().port}`;
@@ -54,7 +50,6 @@ class RedisService extends _service.default {
54
50
  await this.client.connect();
55
51
  this.isConnected = true;
56
52
  this.isReconnecting = false;
57
- this.connectionRetries = 0;
58
53
  this.setupErrorHandles();
59
54
  this.log(`✅ Redis Connection is ready`);
60
55
  return true;
@@ -5,7 +5,7 @@ declare class SecurityService extends Service {
5
5
  private privateKey;
6
6
  private publicKey;
7
7
  private servicePublicKey;
8
- onServiceInit(): Promise<void>;
8
+ onStart(): Promise<boolean>;
9
9
  private checkPaths;
10
10
  private loadPrivateKey;
11
11
  private loadPublicKey;
@@ -1 +1 @@
1
- {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/services/security.ts"],"names":[],"mappings":"AAEA,OAAO,EAAO,GAAG,EAAO,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAQ,OAAO,EAAgB,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,cAAM,eAAgB,SAAQ,OAAO;IACnC,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,gBAAgB,CAAU;IAE5B,aAAa;IAOnB,OAAO,CAAC,UAAU;YAMJ,cAAc;YAad,aAAa;IAMd,cAAc;;;;IASd,oBAAoB;IAUpB,YAAY,CAAC,IAAI,EAAE,MAAM;IAS/B,aAAa;IAQb,YAAY;IAQZ,mBAAmB;IASb,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG;IAyB3C,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC;IAkBhF,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,CAAC,GAAG;IAyBzC,eAAe,CAAC,CAAC,GAAG,GAAG,EAClC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,GAAG,CAAC,GAAG,GACjB,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAiBjD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAoBtD,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK;CAgBhE;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/services/security.ts"],"names":[],"mappings":"AAEA,OAAO,EAAO,GAAG,EAAO,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAQ,OAAO,EAAgB,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,cAAM,eAAgB,SAAQ,OAAO;IACnC,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,gBAAgB,CAAU;IAErB,OAAO;IAWpB,OAAO,CAAC,UAAU;YAMJ,cAAc;YAad,aAAa;IAMd,cAAc;;;;IASd,oBAAoB;IAUpB,YAAY,CAAC,IAAI,EAAE,MAAM;IAS/B,aAAa;IAQb,YAAY;IAQZ,mBAAmB;IASb,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG;IAyB3C,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC;IAkBhF,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,CAAC,GAAG;IAyBzC,eAAe,CAAC,CAAC,GAAG,GAAG,EAClC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,GAAG,CAAC,GAAG,GACjB,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAiBjD,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAoBtD,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK;CAgBhE;AAED,eAAe,eAAe,CAAC"}
@@ -16,11 +16,13 @@ class SecurityService extends _app.Service {
16
16
  privateKey;
17
17
  publicKey;
18
18
  servicePublicKey;
19
- async onServiceInit() {
19
+ async onStart() {
20
+ await super.onStart();
20
21
  this.checkPaths();
21
22
  await this.loadPrivateKey();
22
23
  await this.loadPublicKey();
23
24
  await this.loadServicePublicKey();
25
+ return true;
24
26
  }
25
27
  checkPaths() {
26
28
  !fs.existsSync(_app.Core.settings.getAuthentication().certPath) && fs.mkdirSync(_app.Core.settings.getAuthentication().certPath, {
@@ -10,16 +10,12 @@ declare class SequelizeService extends Service {
10
10
  connections: Map<string, Sequelize>;
11
11
  initializedModels: Map<string, ModelStatic<any>>;
12
12
  relations: Map<string, EnvDBHost>;
13
- private connectionRetries;
14
- private connectionMaxRetries;
15
13
  private isReconnecting;
16
14
  private isMasterConnected;
17
15
  private isServiceConnected;
18
16
  onServiceInit(): Promise<void>;
19
17
  onStart(): Promise<boolean>;
20
- onStartAttempt(): Promise<void>;
21
18
  onStartFail(): Promise<void>;
22
- isStartFailed(): boolean;
23
19
  connectDatabases(): Promise<boolean>;
24
20
  getDB(tenantId: string): Promise<false | Sequelize>;
25
21
  createDB(hostUuid: string, name: string): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"sequelize.d.ts","sourceRoot":"","sources":["../../src/services/sequelize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAsB,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAgB,MAAM,WAAW,CAAC;AAKpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAUlD,cAAM,gBAAiB,SAAQ,OAAO;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzC,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,kBAAkB,CAAS;IAG7B,aAAa;IAcN,OAAO;IAIP,cAAc;IAId,WAAW;IAIjB,aAAa;IAId,gBAAgB;IA+BhB,KAAK,CAAC,QAAQ,EAAE,MAAM;IActB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IA6BvC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAqBpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAiBvC,MAAM,CAAC,QAAQ,EAAE,MAAM;IA6BvB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS;IAkBpE,SAAS,CAAC,QAAQ,EAAE,MAAM;IAK1B,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,SAAI;IAe/B,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IA2CpD,cAAc,CAAC,IAAI,EAAE;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;KAClB;IA4BK,WAAW,CAAC,QAAQ,EAAE,MAAM;IAe5B,QAAQ,CAAC,CAAC,SAAS,YAAY,CAAC,KAAK,CAAC,EAC1C,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAW1B,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE;CAGxD;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"sequelize.d.ts","sourceRoot":"","sources":["../../src/services/sequelize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAsB,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC1D,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAgB,MAAM,WAAW,CAAC;AAKpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAUlD,cAAM,gBAAiB,SAAQ,OAAO;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,kBAAkB,CAAS;IAGtB,aAAa;IAiBb,OAAO;IAMP,WAAW;IAMlB,gBAAgB;IA+BhB,KAAK,CAAC,QAAQ,EAAE,MAAM;IActB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IA6BvC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAqBpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAiBvC,MAAM,CAAC,QAAQ,EAAE,MAAM;IA6BvB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS;IAkBpE,SAAS,CAAC,QAAQ,EAAE,MAAM;IAK1B,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,SAAI;IAe/B,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IA2CpD,cAAc,CAAC,IAAI,EAAE;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;KAClB;IA4BK,WAAW,CAAC,QAAQ,EAAE,MAAM;IAe5B,QAAQ,CAAC,CAAC,SAAS,YAAY,CAAC,KAAK,CAAC,EAC1C,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC5B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAW1B,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE;CAGxD;AAED,eAAe,gBAAgB,CAAC"}
@@ -27,14 +27,13 @@ class SequelizeService extends _service.default {
27
27
  connections;
28
28
  initializedModels;
29
29
  relations;
30
- connectionRetries = 1; // quantidade de tentativas de reconexão
31
- connectionMaxRetries = 3; // quantidade de tentativas de reconexão
32
30
  isReconnecting = false; // Flag para evitar múltiplas tentativas simultâneas de reconexão
33
31
  isMasterConnected = false; // Flag para controlar o estado da conexão
34
32
  isServiceConnected = false; // Flag para controlar o estado da conexão
35
33
 
36
34
  //# Initialization
37
35
  async onServiceInit() {
36
+ await super.onServiceInit();
38
37
  if (!this.models) throw new Error('Models are requireds! Call registerModels(modelsArray)');
39
38
  this.serviceDB = _database.serviceDB;
40
39
  this.masterDB = _database.masterDB;
@@ -42,24 +41,21 @@ class SequelizeService extends _service.default {
42
41
  this.initializedModels = new Map();
43
42
  this.relations = new Map();
44
43
  this.models = [...this.models, ..._models.NativeModels];
45
- this.attemptDelay = 5 * 1000;
44
+ this.startAttemptDelay = 5 * 1000;
45
+ this.maxStartAttempts = 3;
46
46
  }
47
47
  async onStart() {
48
+ await super.onStart();
48
49
  return this.connectDatabases();
49
50
  }
50
- async onStartAttempt() {
51
- this.connectionRetries += 1;
52
- }
53
51
  async onStartFail() {
52
+ await super.onStartFail();
54
53
  this.log(`Not possible to connect database`, 'danger');
55
54
  }
56
- isStartFailed() {
57
- return this.connectionRetries > this.connectionMaxRetries;
58
- }
59
55
  async connectDatabases() {
60
56
  if (this.isMasterConnected && this.isServiceConnected) return true;
61
57
  if (this.isReconnecting) return false;
62
- this.log(`⌛️ Connecting Sequelize to database: ${this.connectionRetries}/${this.connectionMaxRetries}`);
58
+ this.log(`⌛️ Connecting Sequelize to database: ${this.currentStartAttempts}/${this.maxStartAttempts}`);
63
59
  try {
64
60
  if (!this.isMasterConnected) {
65
61
  await this.masterDB.sync({
@@ -9,8 +9,8 @@ declare class SocketIOService extends Service {
9
9
  private mainRouter;
10
10
  private eventhandlers;
11
11
  private clientHandlers;
12
- onClusterInit(): void;
13
- onStartCluster(): Promise<boolean>;
12
+ onServiceClusterInit(): Promise<void>;
13
+ onExodusClusterStarted(): Promise<void>;
14
14
  private onConnection;
15
15
  private bindEvents;
16
16
  createSocket(app: HttpServer, cors?: CorsOptions | CorsOptionsDelegate): void;
@@ -1 +1 @@
1
- {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/services/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AACxD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,kBAAkB,MAAM,oCAAoC,CAAC;AAMpE,OAAO,mBAAmB,MAAM,qCAAqC,CAAC;AAUtE,cAAM,eAAgB,SAAQ,OAAO;IAC5B,MAAM,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,cAAc,CAAsC;IAErD,aAAa;IAIP,cAAc;YAeb,YAAY;IAsC1B,OAAO,CAAC,UAAU;IAgCX,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,GAAE,WAAW,GAAG,mBAAqC;IAM9F,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE;IAIlD,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC,OAAO,mBAAmB,CAAC,EAAE;YAIxD,gBAAgB;CAY/B;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/services/socket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AACxD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAC7C,OAAO,kBAAkB,MAAM,oCAAoC,CAAC;AAMpE,OAAO,mBAAmB,MAAM,qCAAqC,CAAC;AAUtE,cAAM,eAAgB,SAAQ,OAAO;IAC5B,MAAM,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,cAAc,CAAsC;IAE/C,oBAAoB;IAOpB,sBAAsB;YAcrB,YAAY;IAsC1B,OAAO,CAAC,UAAU;IAgCX,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,GAAE,WAAW,GAAG,mBAAqC;IAM9F,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE;IAIlD,MAAM,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC,OAAO,mBAAmB,CAAC,EAAE;YAIxD,gBAAgB;CAY/B;AAED,eAAe,eAAe,CAAC"}
@@ -24,21 +24,23 @@ class SocketIOService extends _service.default {
24
24
  mainRouter;
25
25
  eventhandlers;
26
26
  clientHandlers = [];
27
- onClusterInit() {
27
+ async onServiceClusterInit() {
28
+ await super.onServiceClusterInit();
29
+ if (!this.mainRouter) throw new Error('Need router'); //!sem router
30
+
28
31
  this.eventhandlers = new Map();
29
32
  }
30
- async onStartCluster() {
31
- if (!this.mainRouter) throw new Error('Need router'); //!sem router
33
+ async onExodusClusterStarted() {
34
+ await super.onExodusClusterStarted();
35
+ //! este depende de ExpressService para iniciar, por isso está aqui
32
36
 
33
37
  try {
34
38
  this.createSocket(_express.default.getService().getHttpServer());
35
39
  await this.registerHandlers();
36
40
  this.server.on('connection', this.onConnection.bind(this));
37
41
  this.log('✅ Socket server created');
38
- return true;
39
42
  } catch (error) {
40
43
  (0, _utils.logger)().error(error, `Not connected to SocketIO`);
41
- return false;
42
44
  }
43
45
  }
44
46
  async onConnection(socket) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exodus-framework",
3
- "version": "2.0.894",
3
+ "version": "2.0.896",
4
4
  "description": "Exodus Framework",
5
5
  "author": "jhownpaixao",
6
6
  "license": "ISC",