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 +0 -0
- package/dist/.metadata/index.d.ts +1 -0
- package/dist/.metadata/index.d.ts.map +1 -0
- package/dist/.metadata/this.d.ts +1 -0
- package/dist/.metadata/this.d.ts.map +1 -0
- package/dist/bean/bean.worker.d.ts +1 -0
- package/dist/bean/bean.worker.d.ts.map +1 -0
- package/dist/bean/broadcast.exitAll.d.ts +1 -0
- package/dist/bean/broadcast.exitAll.d.ts.map +1 -0
- package/dist/bean/broadcast.reloadAll.d.ts +1 -0
- package/dist/bean/broadcast.reloadAll.d.ts.map +1 -0
- package/dist/bean/cacheRedis.workerAlive.d.ts +1 -0
- package/dist/bean/cacheRedis.workerAlive.d.ts.map +1 -0
- package/dist/config/config.d.ts +1 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -0
- package/dist/monkey.d.ts +1 -0
- package/dist/monkey.d.ts.map +1 -0
- package/package.json +24 -19
- package/src/.metadata/index.ts +145 -0
- package/src/.metadata/this.ts +2 -0
- package/src/bean/bean.worker.ts +58 -0
- package/src/bean/broadcast.exitAll.ts +14 -0
- package/src/bean/broadcast.reloadAll.ts +12 -0
- package/src/bean/cacheRedis.workerAlive.ts +11 -0
- package/src/config/config.ts +10 -0
- package/src/index.ts +1 -0
- package/src/monkey.ts +33 -0
package/LICENSE
CHANGED
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"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"}
|
package/dist/.metadata/this.d.ts
CHANGED
|
@@ -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"}
|
|
@@ -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"}
|
package/dist/config/config.d.ts
CHANGED
|
@@ -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
|
@@ -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
|
@@ -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
|
-
"
|
|
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
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
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
|
-
"
|
|
36
|
-
|
|
37
|
-
"
|
|
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,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> {}
|
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
|
+
}
|