vona-module-a-worker 5.0.27 → 5.1.1

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.
package/LICENSE CHANGED
File without changes
@@ -106,3 +106,4 @@ declare module 'vona' {
106
106
  }
107
107
  }
108
108
  /** scope: end */
109
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export declare const __ThisModule__ = "a-worker";
2
2
  export { ScopeModuleAWorker as ScopeModule } from './index.ts';
3
+ //# sourceMappingURL=this.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"this.d.ts","sourceRoot":"","sources":["../../src/.metadata/this.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,OAAO,EAAE,kBAAkB,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -9,3 +9,4 @@ export declare class BeanWorker extends BeanBase {
9
9
  reload(): void;
10
10
  reloadAll(): void;
11
11
  }
12
+ //# sourceMappingURL=bean.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bean.worker.d.ts","sourceRoot":"","sources":["../../src/bean/bean.worker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAU,MAAM,MAAM,CAAC;AAKxC,qBACa,UAAW,SAAQ,QAAQ;IACtC,IAAI,EAAE,IAAI,MAAM,CAKf;IAEK,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM;IAMpB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM;IAIpB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM;IAK1B,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS;IAO9C,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS;IAIjD,MAAM;IAYN,SAAS;CAGV"}
@@ -6,3 +6,4 @@ export interface TypeBroadcastExitAllJobData {
6
6
  export declare class BroadcastExitAll extends BeanBroadcastBase<TypeBroadcastExitAllJobData> implements IBroadcastExecute<TypeBroadcastExitAllJobData> {
7
7
  execute(data: TypeBroadcastExitAllJobData, _isEmitter?: boolean): Promise<void>;
8
8
  }
9
+ //# sourceMappingURL=broadcast.exitAll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.exitAll.d.ts","sourceRoot":"","sources":["../../src/bean/broadcast.exitAll.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAa,MAAM,yBAAyB,CAAC;AAEvE,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC3C;AAED,qBACa,gBAAiB,SAAQ,iBAAiB,CAAC,2BAA2B,CAAE,YAAW,iBAAiB,CAAC,2BAA2B,CAAC;IACtI,OAAO,CAAC,IAAI,EAAE,2BAA2B,EAAE,UAAU,CAAC,EAAE,OAAO;CAGtE"}
@@ -4,3 +4,4 @@ export type TypeBroadcastReloadAllJobData = unknown;
4
4
  export declare class BroadcastReloadAll extends BeanBroadcastBase<TypeBroadcastReloadAllJobData> implements IBroadcastExecute<TypeBroadcastReloadAllJobData> {
5
5
  execute(_data: TypeBroadcastReloadAllJobData, _isEmitter?: boolean): Promise<void>;
6
6
  }
7
+ //# sourceMappingURL=broadcast.reloadAll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.reloadAll.d.ts","sourceRoot":"","sources":["../../src/bean/broadcast.reloadAll.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAa,MAAM,yBAAyB,CAAC;AAEvE,MAAM,MAAM,6BAA6B,GAAG,OAAO,CAAC;AAEpD,qBACa,kBAAmB,SAAQ,iBAAiB,CAAC,6BAA6B,CAAE,YAAW,iBAAiB,CAAC,6BAA6B,CAAC;IAC5I,OAAO,CAAC,KAAK,EAAE,6BAA6B,EAAE,UAAU,CAAC,EAAE,OAAO;CAGzE"}
@@ -3,3 +3,4 @@ export type TCacheRedisWorkerAliveKey = string;
3
3
  export type TCacheRedisWorkerAliveData = boolean;
4
4
  export declare class CacheRedisWorkerAlive extends BeanCacheRedisBase<TCacheRedisWorkerAliveKey, TCacheRedisWorkerAliveData> {
5
5
  }
6
+ //# sourceMappingURL=cacheRedis.workerAlive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cacheRedis.workerAlive.d.ts","sourceRoot":"","sources":["../../src/bean/cacheRedis.workerAlive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAc,MAAM,qBAAqB,CAAC;AAErE,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAC/C,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAEjD,qBAKa,qBAAsB,SAAQ,kBAAkB,CAAC,yBAAyB,EAAE,0BAA0B,CAAC;CAAG"}
@@ -5,3 +5,4 @@ export declare function config(app: VonaApplication): {
5
5
  timeoutMore: number;
6
6
  };
7
7
  };
8
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAE5C,wBAAgB,MAAM,CAAC,GAAG,EAAE,eAAe;;;;;EAO1C"}
package/dist/index.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export * from './.metadata/index.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { BeanInfo, BeanBase, uuidv4, BeanSimple, BeanScopeBase } from 'vona';
2
2
  import { __decorate } from 'tslib';
3
- import cluster from 'node:cluster';
4
3
  import { isNil } from '@cabloy/utils';
4
+ import cluster from 'node:cluster';
5
5
  import { Bean, Scope } from 'vona-module-a-bean';
6
6
  import { Broadcast, BeanBroadcastBase } from 'vona-module-a-broadcast';
7
7
  import { CacheRedis, BeanCacheRedisBase } from 'vona-module-a-cache';
@@ -134,3 +134,4 @@ ScopeModuleAWorker = __decorate([Scope(), BeanInfo({
134
134
  /** scope: end */
135
135
 
136
136
  export { BeanWorker, BroadcastExitAll, BroadcastReloadAll, CacheRedisWorkerAlive, Monkey, ScopeModuleAWorker, config };
137
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/bean/bean.worker.ts","../src/bean/broadcast.exitAll.ts","../src/bean/broadcast.reloadAll.ts","../src/bean/cacheRedis.workerAlive.ts","../src/config/config.ts","../src/.metadata/this.ts","../src/monkey.ts","../src/.metadata/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null],"names":["SymbolWorkerId","Symbol","BeanWorker","BeanBase","id","app","undefined","uuidv4","setAlive","aliveTimeout","scope","config","alive","timeout","aliveTimeoutMore","timeoutMore","cacheRedis","workerAlive","set","ttl","delAlive","del","getAlive","isNil","get","exit","code","close","then","process","throw","exitAll","broadcast","emit","reload","worker","cluster","send","reloadAll","__decorate","Bean","__z_BeanInfo","module","BroadcastExitAll","BeanBroadcastBase","execute","data","_isEmitter","bean","Broadcast","instance","BroadcastReloadAll","_data","CacheRedisWorkerAlive","BeanCacheRedisBase","CacheRedis","disableInstance","disableTransactionCompensate","client","meta","isProd","__ThisModule__","Monkey","BeanSimple","constructor","args","_intervalAlive","moduleLoading","_module","moduleLoaded","info","relativeName","setInterval","configLoaded","_config","appClosed","clearInterval","ScopeModuleAWorker","BeanScopeBase","Scope"],"mappings":"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"}
package/dist/monkey.d.ts CHANGED
@@ -8,3 +8,4 @@ export declare class Monkey extends BeanSimple implements IMonkeyModule, IMonkey
8
8
  configLoaded(_module: IModule, _config: any): Promise<void>;
9
9
  appClosed(): Promise<void>;
10
10
  }
11
+ //# sourceMappingURL=monkey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monkey.d.ts","sourceRoot":"","sources":["../src/monkey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAIlC,qBAAa,MAAO,SAAQ,UAAW,YAAW,aAAa,EAAE,gBAAgB;IAC/E,cAAc,EAAE,GAAG,CAAQ;IAErB,aAAa,CAAC,OAAO,EAAE,OAAO;IAC9B,YAAY,CAAC,MAAM,EAAE,OAAO;IAY5B,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG;IAE3C,SAAS;CAOhB"}
package/package.json CHANGED
@@ -1,19 +1,17 @@
1
1
  {
2
2
  "name": "vona-module-a-worker",
3
- "type": "module",
4
- "version": "5.0.27",
5
- "title": "a-worker",
6
- "vonaModule": {
7
- "dependencies": {},
8
- "capabilities": {
9
- "monkey": true
10
- }
11
- },
3
+ "version": "5.1.1",
12
4
  "description": "",
13
- "author": "",
14
5
  "keywords": [
15
6
  "Vona Module"
16
7
  ],
8
+ "author": "",
9
+ "files": [
10
+ "assets",
11
+ "dist",
12
+ "src"
13
+ ],
14
+ "type": "module",
17
15
  "exports": {
18
16
  ".": {
19
17
  "types": [
@@ -24,16 +22,23 @@
24
22
  },
25
23
  "./package.json": "./package.json"
26
24
  },
27
- "files": [
28
- "assets",
29
- "dist"
30
- ],
25
+ "scripts": {
26
+ "clean": "rimraf dist tsconfig.build.tsbuildinfo",
27
+ "tsc:publish": "npm run clean && vona :bin:buildModule --sourcemap && tsc -p tsconfig.build.json",
28
+ "prepublishOnly": "npm run tsc:publish",
29
+ "prepack": "clean-package",
30
+ "postpack": "clean-package restore && npm run clean"
31
+ },
31
32
  "devDependencies": {
32
33
  "clean-package": "^2.2.0",
33
34
  "rimraf": "^6.0.1"
34
35
  },
35
- "scripts": {
36
- "clean": "rimraf dist tsconfig.build.tsbuildinfo",
37
- "tsc:publish": "npm run clean && vona :bin:buildModule && tsc -p tsconfig.build.json"
38
- }
39
- }
36
+ "title": "a-worker",
37
+ "vonaModule": {
38
+ "dependencies": {},
39
+ "capabilities": {
40
+ "monkey": true
41
+ }
42
+ },
43
+ "gitHead": "991189da4443b789fcf77872990b901ccf43bccb"
44
+ }
@@ -0,0 +1,145 @@
1
+ // eslint-disable
2
+ /** bean: begin */
3
+ export * from '../bean/bean.worker.ts';
4
+
5
+ import 'vona';
6
+ declare module 'vona' {
7
+
8
+
9
+ }
10
+ declare module 'vona-module-a-worker' {
11
+
12
+ export interface BeanWorker {
13
+ /** @internal */
14
+ get scope(): ScopeModuleAWorker;
15
+ }
16
+ }
17
+ /** bean: end */
18
+ /** bean: begin */
19
+ import type { BeanWorker } from '../bean/bean.worker.ts';
20
+ import 'vona';
21
+ declare module 'vona' {
22
+ export interface IBeanRecordGlobal {
23
+ 'worker': BeanWorker;
24
+ }
25
+ }
26
+ /** bean: end */
27
+ /** broadcast: begin */
28
+ export * from '../bean/broadcast.exitAll.ts';
29
+ export * from '../bean/broadcast.reloadAll.ts';
30
+
31
+ import { type IDecoratorBroadcastOptions } from 'vona-module-a-broadcast';
32
+ declare module 'vona-module-a-broadcast' {
33
+
34
+ export interface IBroadcastRecord {
35
+ 'a-worker:exitAll': IDecoratorBroadcastOptions;
36
+ 'a-worker:reloadAll': IDecoratorBroadcastOptions;
37
+ }
38
+
39
+
40
+ }
41
+ declare module 'vona-module-a-worker' {
42
+
43
+ export interface BroadcastExitAll {
44
+ /** @internal */
45
+ get scope(): ScopeModuleAWorker;
46
+ }
47
+
48
+ export interface BroadcastExitAll {
49
+ get $beanFullName(): 'a-worker.broadcast.exitAll';
50
+ get $onionName(): 'a-worker:exitAll';
51
+ get $onionOptions(): IDecoratorBroadcastOptions;
52
+ }
53
+
54
+ export interface BroadcastReloadAll {
55
+ /** @internal */
56
+ get scope(): ScopeModuleAWorker;
57
+ }
58
+
59
+ export interface BroadcastReloadAll {
60
+ get $beanFullName(): 'a-worker.broadcast.reloadAll';
61
+ get $onionName(): 'a-worker:reloadAll';
62
+ get $onionOptions(): IDecoratorBroadcastOptions;
63
+ }
64
+ }
65
+ /** broadcast: end */
66
+ /** broadcast: begin */
67
+ import type { BroadcastExitAll } from '../bean/broadcast.exitAll.ts';
68
+ import type { BroadcastReloadAll } from '../bean/broadcast.reloadAll.ts';
69
+ export interface IModuleBroadcast {
70
+ 'exitAll': BroadcastExitAll;
71
+ 'reloadAll': BroadcastReloadAll;
72
+ }
73
+ /** broadcast: end */
74
+ /** cacheRedis: begin */
75
+ export * from '../bean/cacheRedis.workerAlive.ts';
76
+
77
+ import { type IDecoratorCacheRedisOptions } from 'vona-module-a-cache';
78
+ declare module 'vona-module-a-cache' {
79
+
80
+ export interface ICacheRedisRecord {
81
+ 'a-worker:workerAlive': IDecoratorCacheRedisOptions;
82
+ }
83
+
84
+
85
+ }
86
+ declare module 'vona-module-a-worker' {
87
+
88
+ export interface CacheRedisWorkerAlive {
89
+ /** @internal */
90
+ get scope(): ScopeModuleAWorker;
91
+ }
92
+
93
+ export interface CacheRedisWorkerAlive {
94
+ get $beanFullName(): 'a-worker.cacheRedis.workerAlive';
95
+ get $onionName(): 'a-worker:workerAlive';
96
+ get $onionOptions(): IDecoratorCacheRedisOptions;
97
+ }
98
+ }
99
+ /** cacheRedis: end */
100
+ /** cacheRedis: begin */
101
+ import type { CacheRedisWorkerAlive } from '../bean/cacheRedis.workerAlive.ts';
102
+ export interface IModuleCacheRedis {
103
+ 'workerAlive': CacheRedisWorkerAlive;
104
+ }
105
+ /** cacheRedis: end */
106
+ /** config: begin */
107
+ export * from '../config/config.ts';
108
+ import type { config } from '../config/config.ts';
109
+ /** config: end */
110
+ /** monkey: begin */
111
+ export * from '../monkey.ts';
112
+ /** monkey: end */
113
+ /** scope: begin */
114
+ import { BeanScopeBase, type BeanScopeUtil, type TypeModuleConfig } from 'vona';
115
+ import { Scope } from 'vona-module-a-bean';
116
+
117
+ @Scope()
118
+ export class ScopeModuleAWorker extends BeanScopeBase {}
119
+
120
+ export interface ScopeModuleAWorker {
121
+ util: BeanScopeUtil;
122
+ config: TypeModuleConfig<typeof config>;
123
+ broadcast: IModuleBroadcast;
124
+ cacheRedis: IModuleCacheRedis;
125
+ }
126
+
127
+ import 'vona';
128
+ declare module 'vona' {
129
+ export interface IBeanScopeRecord {
130
+ 'a-worker': ScopeModuleAWorker;
131
+ }
132
+
133
+ export interface IBeanScopeContainer {
134
+ worker: ScopeModuleAWorker;
135
+ }
136
+
137
+ export interface IBeanScopeConfig {
138
+ 'a-worker': ReturnType<typeof config>;
139
+ }
140
+
141
+
142
+
143
+
144
+ }
145
+ /** scope: end */
@@ -0,0 +1,2 @@
1
+ export const __ThisModule__ = 'a-worker';
2
+ export { ScopeModuleAWorker as ScopeModule } from './index.ts';
@@ -0,0 +1,58 @@
1
+ import { isNil } from '@cabloy/utils';
2
+ import cluster from 'node:cluster';
3
+ import { BeanBase, uuidv4 } from 'vona';
4
+ import { Bean } from 'vona-module-a-bean';
5
+
6
+ const SymbolWorkerId = Symbol('SymbolWorkerId');
7
+
8
+ @Bean()
9
+ export class BeanWorker extends BeanBase {
10
+ get id(): string {
11
+ if (this.app[SymbolWorkerId] === undefined) {
12
+ this.app[SymbolWorkerId] = uuidv4();
13
+ }
14
+ return this.app[SymbolWorkerId];
15
+ }
16
+
17
+ async setAlive(id?: string) {
18
+ const aliveTimeout = this.scope.config.alive.timeout;
19
+ const aliveTimeoutMore = this.scope.config.alive.timeoutMore;
20
+ await this.scope.cacheRedis.workerAlive.set(true, id ?? this.id, { ttl: aliveTimeout + aliveTimeoutMore });
21
+ }
22
+
23
+ async delAlive(id?: string) {
24
+ await this.scope.cacheRedis.workerAlive.del(id ?? this.id);
25
+ }
26
+
27
+ async getAlive(id?: string) {
28
+ if (isNil(id) || id === this.id) return true;
29
+ return await this.scope.cacheRedis.workerAlive.get(id ?? this.id);
30
+ }
31
+
32
+ exit(code?: number | string | null | undefined) {
33
+ this.app.close().then(() => {
34
+ process.exit(code);
35
+ });
36
+ this.app.throw(700);
37
+ }
38
+
39
+ exitAll(code?: number | string | null | undefined) {
40
+ this.scope.broadcast.exitAll.emit({ code });
41
+ }
42
+
43
+ reload() {
44
+ const worker = cluster.worker;
45
+ if (!worker) {
46
+ this.exit(); // docker restart
47
+ } else {
48
+ this.app.close().then(() => {
49
+ worker.send('reload-worker');
50
+ });
51
+ this.app.throw(701);
52
+ }
53
+ }
54
+
55
+ reloadAll() {
56
+ this.scope.broadcast.reloadAll.emit();
57
+ }
58
+ }
@@ -0,0 +1,14 @@
1
+ import type { IBroadcastExecute } from 'vona-module-a-broadcast';
2
+
3
+ import { BeanBroadcastBase, Broadcast } from 'vona-module-a-broadcast';
4
+
5
+ export interface TypeBroadcastExitAllJobData {
6
+ code?: number | string | null | undefined;
7
+ }
8
+
9
+ @Broadcast({ instance: false })
10
+ export class BroadcastExitAll extends BeanBroadcastBase<TypeBroadcastExitAllJobData> implements IBroadcastExecute<TypeBroadcastExitAllJobData> {
11
+ async execute(data: TypeBroadcastExitAllJobData, _isEmitter?: boolean) {
12
+ this.bean.worker.exit(data.code);
13
+ }
14
+ }
@@ -0,0 +1,12 @@
1
+ import type { IBroadcastExecute } from 'vona-module-a-broadcast';
2
+
3
+ import { BeanBroadcastBase, Broadcast } from 'vona-module-a-broadcast';
4
+
5
+ export type TypeBroadcastReloadAllJobData = unknown;
6
+
7
+ @Broadcast({ instance: false })
8
+ export class BroadcastReloadAll extends BeanBroadcastBase<TypeBroadcastReloadAllJobData> implements IBroadcastExecute<TypeBroadcastReloadAllJobData> {
9
+ async execute(_data: TypeBroadcastReloadAllJobData, _isEmitter?: boolean) {
10
+ this.bean.worker.reload();
11
+ }
12
+ }
@@ -0,0 +1,11 @@
1
+ import { BeanCacheRedisBase, CacheRedis } from 'vona-module-a-cache';
2
+
3
+ export type TCacheRedisWorkerAliveKey = string;
4
+ export type TCacheRedisWorkerAliveData = boolean;
5
+
6
+ @CacheRedis({
7
+ disableInstance: true,
8
+ disableTransactionCompensate: true,
9
+ client: 'worker',
10
+ })
11
+ export class CacheRedisWorkerAlive extends BeanCacheRedisBase<TCacheRedisWorkerAliveKey, TCacheRedisWorkerAliveData> {}
@@ -0,0 +1,10 @@
1
+ import type { VonaApplication } from 'vona';
2
+
3
+ export function config(app: VonaApplication) {
4
+ return {
5
+ alive: {
6
+ timeout: app.meta.isProd ? 3000 : 1000,
7
+ timeoutMore: app.meta.isProd ? 3000 : 1000,
8
+ },
9
+ };
10
+ }
package/src/index.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './.metadata/index.ts';
package/src/monkey.ts ADDED
@@ -0,0 +1,33 @@
1
+ import type { IModule } from '@cabloy/module-info';
2
+ import type { IMonkeyAppClosed, IMonkeyModule } from 'vona';
3
+
4
+ import { BeanSimple } from 'vona';
5
+
6
+ import { __ThisModule__ } from './.metadata/this.ts';
7
+
8
+ export class Monkey extends BeanSimple implements IMonkeyModule, IMonkeyAppClosed {
9
+ _intervalAlive: any = null;
10
+
11
+ async moduleLoading(_module: IModule) {}
12
+ async moduleLoaded(module: IModule) {
13
+ if (module.info.relativeName !== __ThisModule__) return;
14
+ const scope = this.app.scope(__ThisModule__);
15
+ const aliveTimeout = scope.config.alive.timeout;
16
+ // interval
17
+ this._intervalAlive = setInterval(async () => {
18
+ await this.app.bean.worker.setAlive();
19
+ }, aliveTimeout);
20
+ // alive
21
+ await this.app.bean.worker.setAlive();
22
+ }
23
+
24
+ async configLoaded(_module: IModule, _config: any) {}
25
+
26
+ async appClosed() {
27
+ await this.bean.worker.delAlive();
28
+ if (this._intervalAlive) {
29
+ clearInterval(this._intervalAlive);
30
+ }
31
+ this._intervalAlive = null;
32
+ }
33
+ }