redis-smq-common 8.0.3 → 8.2.0

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.
Files changed (143) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/cjs/src/logger/console-logger/console-logger.d.ts +14 -0
  3. package/dist/cjs/src/logger/console-logger/console-logger.d.ts.map +1 -0
  4. package/dist/cjs/src/logger/console-logger/console-logger.js +61 -0
  5. package/dist/cjs/src/logger/console-logger/console-logger.js.map +1 -0
  6. package/dist/cjs/src/logger/console-logger/console-message-formatter.d.ts +17 -0
  7. package/dist/cjs/src/logger/console-logger/console-message-formatter.d.ts.map +1 -0
  8. package/dist/cjs/src/logger/console-logger/console-message-formatter.js +48 -0
  9. package/dist/cjs/src/logger/console-logger/console-message-formatter.js.map +1 -0
  10. package/dist/cjs/src/logger/console-logger/index.d.ts +3 -0
  11. package/dist/cjs/src/logger/console-logger/index.d.ts.map +1 -0
  12. package/dist/cjs/src/logger/console-logger/index.js +19 -0
  13. package/dist/cjs/src/logger/console-logger/index.js.map +1 -0
  14. package/dist/cjs/src/logger/console-logger/types/console-logger.d.ts +15 -0
  15. package/dist/cjs/src/logger/console-logger/types/console-logger.d.ts.map +1 -0
  16. package/dist/cjs/src/logger/console-logger/types/console-logger.js +11 -0
  17. package/dist/cjs/src/logger/console-logger/types/console-logger.js.map +1 -0
  18. package/dist/cjs/src/logger/console-logger/types/index.d.ts +2 -0
  19. package/dist/cjs/src/logger/console-logger/types/index.d.ts.map +1 -0
  20. package/dist/cjs/src/logger/console-logger/types/index.js +18 -0
  21. package/dist/cjs/src/logger/console-logger/types/index.js.map +1 -0
  22. package/dist/cjs/src/logger/index.d.ts +1 -0
  23. package/dist/cjs/src/logger/index.d.ts.map +1 -1
  24. package/dist/cjs/src/logger/index.js +1 -0
  25. package/dist/cjs/src/logger/index.js.map +1 -1
  26. package/dist/cjs/src/logger/logger.d.ts +1 -1
  27. package/dist/cjs/src/logger/logger.d.ts.map +1 -1
  28. package/dist/cjs/src/logger/logger.js +27 -5
  29. package/dist/cjs/src/logger/logger.js.map +1 -1
  30. package/dist/cjs/src/logger/types/index.d.ts +1 -7
  31. package/dist/cjs/src/logger/types/index.d.ts.map +1 -1
  32. package/dist/cjs/src/logger/types/index.js +1 -1
  33. package/dist/cjs/src/logger/types/logger.d.ts +12 -0
  34. package/dist/cjs/src/logger/types/logger.d.ts.map +1 -0
  35. package/dist/cjs/src/logger/types/{config.js → logger.js} +1 -1
  36. package/dist/cjs/src/logger/types/logger.js.map +1 -0
  37. package/dist/cjs/src/redis-client/clients/ioredis/ioredis-client.d.ts +1 -0
  38. package/dist/cjs/src/redis-client/clients/ioredis/ioredis-client.d.ts.map +1 -1
  39. package/dist/cjs/src/redis-client/clients/ioredis/ioredis-client.js +3 -0
  40. package/dist/cjs/src/redis-client/clients/ioredis/ioredis-client.js.map +1 -1
  41. package/dist/cjs/src/redis-client/clients/node-redis/node-redis-client.d.ts +1 -0
  42. package/dist/cjs/src/redis-client/clients/node-redis/node-redis-client.d.ts.map +1 -1
  43. package/dist/cjs/src/redis-client/clients/node-redis/node-redis-client.js +6 -0
  44. package/dist/cjs/src/redis-client/clients/node-redis/node-redis-client.js.map +1 -1
  45. package/dist/cjs/src/redis-client/clients/redis-client-abstract.d.ts +1 -0
  46. package/dist/cjs/src/redis-client/clients/redis-client-abstract.d.ts.map +1 -1
  47. package/dist/cjs/src/redis-client/clients/redis-client-abstract.js.map +1 -1
  48. package/dist/cjs/src/redis-client/types/redis-client.d.ts +1 -0
  49. package/dist/cjs/src/redis-client/types/redis-client.d.ts.map +1 -1
  50. package/dist/cjs/src/redis-lock/redis-lock.d.ts +2 -0
  51. package/dist/cjs/src/redis-lock/redis-lock.d.ts.map +1 -1
  52. package/dist/cjs/src/redis-lock/redis-lock.js +114 -19
  53. package/dist/cjs/src/redis-lock/redis-lock.js.map +1 -1
  54. package/dist/cjs/src/worker/worker-callable.d.ts +2 -1
  55. package/dist/cjs/src/worker/worker-callable.d.ts.map +1 -1
  56. package/dist/cjs/src/worker/worker-callable.js +31 -3
  57. package/dist/cjs/src/worker/worker-callable.js.map +1 -1
  58. package/dist/cjs/src/worker/worker-resource-group.d.ts.map +1 -1
  59. package/dist/cjs/src/worker/worker-resource-group.js +100 -17
  60. package/dist/cjs/src/worker/worker-resource-group.js.map +1 -1
  61. package/dist/cjs/src/worker/worker-runnable.d.ts +2 -1
  62. package/dist/cjs/src/worker/worker-runnable.d.ts.map +1 -1
  63. package/dist/cjs/src/worker/worker-runnable.js +33 -4
  64. package/dist/cjs/src/worker/worker-runnable.js.map +1 -1
  65. package/dist/cjs/src/worker/worker.d.ts +4 -1
  66. package/dist/cjs/src/worker/worker.d.ts.map +1 -1
  67. package/dist/cjs/src/worker/worker.js +206 -57
  68. package/dist/cjs/src/worker/worker.js.map +1 -1
  69. package/dist/esm/src/logger/console-logger/console-logger.d.ts +14 -0
  70. package/dist/esm/src/logger/console-logger/console-logger.d.ts.map +1 -0
  71. package/dist/esm/src/logger/console-logger/console-logger.js +59 -0
  72. package/dist/esm/src/logger/console-logger/console-logger.js.map +1 -0
  73. package/dist/esm/src/logger/console-logger/console-message-formatter.d.ts +17 -0
  74. package/dist/esm/src/logger/console-logger/console-message-formatter.d.ts.map +1 -0
  75. package/dist/esm/src/logger/console-logger/console-message-formatter.js +47 -0
  76. package/dist/esm/src/logger/console-logger/console-message-formatter.js.map +1 -0
  77. package/dist/esm/src/logger/console-logger/index.d.ts +3 -0
  78. package/dist/esm/src/logger/console-logger/index.d.ts.map +1 -0
  79. package/dist/esm/src/logger/console-logger/index.js +3 -0
  80. package/dist/esm/src/logger/console-logger/index.js.map +1 -0
  81. package/dist/esm/src/logger/console-logger/types/console-logger.d.ts +15 -0
  82. package/dist/esm/src/logger/console-logger/types/console-logger.d.ts.map +1 -0
  83. package/dist/esm/src/logger/console-logger/types/console-logger.js +8 -0
  84. package/dist/esm/src/logger/console-logger/types/console-logger.js.map +1 -0
  85. package/dist/esm/src/logger/console-logger/types/index.d.ts +2 -0
  86. package/dist/esm/src/logger/console-logger/types/index.d.ts.map +1 -0
  87. package/dist/esm/src/logger/console-logger/types/index.js +2 -0
  88. package/dist/esm/src/logger/console-logger/types/index.js.map +1 -0
  89. package/dist/esm/src/logger/index.d.ts +1 -0
  90. package/dist/esm/src/logger/index.d.ts.map +1 -1
  91. package/dist/esm/src/logger/index.js +1 -0
  92. package/dist/esm/src/logger/index.js.map +1 -1
  93. package/dist/esm/src/logger/logger.d.ts +1 -1
  94. package/dist/esm/src/logger/logger.d.ts.map +1 -1
  95. package/dist/esm/src/logger/logger.js +25 -3
  96. package/dist/esm/src/logger/logger.js.map +1 -1
  97. package/dist/esm/src/logger/types/index.d.ts +1 -7
  98. package/dist/esm/src/logger/types/index.d.ts.map +1 -1
  99. package/dist/esm/src/logger/types/index.js +1 -1
  100. package/dist/esm/src/logger/types/logger.d.ts +12 -0
  101. package/dist/esm/src/logger/types/logger.d.ts.map +1 -0
  102. package/dist/esm/src/logger/types/logger.js +2 -0
  103. package/dist/esm/src/logger/types/logger.js.map +1 -0
  104. package/dist/esm/src/redis-client/clients/ioredis/ioredis-client.d.ts +1 -0
  105. package/dist/esm/src/redis-client/clients/ioredis/ioredis-client.d.ts.map +1 -1
  106. package/dist/esm/src/redis-client/clients/ioredis/ioredis-client.js +3 -0
  107. package/dist/esm/src/redis-client/clients/ioredis/ioredis-client.js.map +1 -1
  108. package/dist/esm/src/redis-client/clients/node-redis/node-redis-client.d.ts +1 -0
  109. package/dist/esm/src/redis-client/clients/node-redis/node-redis-client.d.ts.map +1 -1
  110. package/dist/esm/src/redis-client/clients/node-redis/node-redis-client.js +6 -0
  111. package/dist/esm/src/redis-client/clients/node-redis/node-redis-client.js.map +1 -1
  112. package/dist/esm/src/redis-client/clients/redis-client-abstract.d.ts +1 -0
  113. package/dist/esm/src/redis-client/clients/redis-client-abstract.d.ts.map +1 -1
  114. package/dist/esm/src/redis-client/clients/redis-client-abstract.js.map +1 -1
  115. package/dist/esm/src/redis-client/types/redis-client.d.ts +1 -0
  116. package/dist/esm/src/redis-client/types/redis-client.d.ts.map +1 -1
  117. package/dist/esm/src/redis-lock/redis-lock.d.ts +2 -0
  118. package/dist/esm/src/redis-lock/redis-lock.d.ts.map +1 -1
  119. package/dist/esm/src/redis-lock/redis-lock.js +114 -19
  120. package/dist/esm/src/redis-lock/redis-lock.js.map +1 -1
  121. package/dist/esm/src/worker/worker-callable.d.ts +2 -1
  122. package/dist/esm/src/worker/worker-callable.d.ts.map +1 -1
  123. package/dist/esm/src/worker/worker-callable.js +31 -3
  124. package/dist/esm/src/worker/worker-callable.js.map +1 -1
  125. package/dist/esm/src/worker/worker-resource-group.d.ts.map +1 -1
  126. package/dist/esm/src/worker/worker-resource-group.js +100 -17
  127. package/dist/esm/src/worker/worker-resource-group.js.map +1 -1
  128. package/dist/esm/src/worker/worker-runnable.d.ts +2 -1
  129. package/dist/esm/src/worker/worker-runnable.d.ts.map +1 -1
  130. package/dist/esm/src/worker/worker-runnable.js +33 -4
  131. package/dist/esm/src/worker/worker-runnable.js.map +1 -1
  132. package/dist/esm/src/worker/worker.d.ts +4 -1
  133. package/dist/esm/src/worker/worker.d.ts.map +1 -1
  134. package/dist/esm/src/worker/worker.js +206 -55
  135. package/dist/esm/src/worker/worker.js.map +1 -1
  136. package/package.json +1 -1
  137. package/dist/cjs/src/logger/types/config.d.ts +0 -4
  138. package/dist/cjs/src/logger/types/config.d.ts.map +0 -1
  139. package/dist/cjs/src/logger/types/config.js.map +0 -1
  140. package/dist/esm/src/logger/types/config.d.ts +0 -4
  141. package/dist/esm/src/logger/types/config.d.ts.map +0 -1
  142. package/dist/esm/src/logger/types/config.js +0 -2
  143. package/dist/esm/src/logger/types/config.js.map +0 -1
@@ -17,91 +17,174 @@ export class WorkerResourceGroup extends Runnable {
17
17
  super();
18
18
  this.powerManager = new PowerSwitch();
19
19
  this.logger = logger;
20
+ this.logger.info(`Initializing WorkerResourceGroup with ID: ${resourceGroupId}`);
20
21
  this.redisClient = redisClient;
21
- this.redisClient.once('error', (err) => this.handleError(err));
22
+ this.redisClient.once('error', (err) => {
23
+ this.logger.error(`Redis client error: ${err.message}`, err);
24
+ this.handleError(err);
25
+ });
26
+ this.logger.debug(`Creating RedisLock for resource group: ${resourceGroupId}`);
22
27
  this.locker = new RedisLock(redisClient, logger, resourceGroupId, 60000, true, 15000);
23
28
  this.locker.on('locker.error', (err) => {
29
+ this.logger.error(`Locker error: ${err.message}`, err);
24
30
  this.handleError(err);
25
31
  });
32
+ this.logger.info(`WorkerResourceGroup initialized with ID: ${resourceGroupId}`);
26
33
  }
27
34
  lock = (cb) => {
28
- this.locker.acquireLock((err) => {
29
- if (err)
35
+ this.logger.debug('Attempting to acquire lock...');
36
+ this.locker.acquireLock((err, acquired) => {
37
+ if (err) {
38
+ this.logger.error(`Failed to acquire lock: ${err.message}`, err);
30
39
  cb(err);
31
- else {
40
+ }
41
+ else if (acquired) {
32
42
  this.logger.info(`Workers are exclusively running from this instance (Lock ID ${this.locker.getId()}).`);
33
43
  cb();
34
44
  }
45
+ else {
46
+ this.logger.warn('Lock was not acquired, but no error was returned');
47
+ cb();
48
+ }
35
49
  });
36
50
  };
37
51
  runWorkers = (cb) => {
38
52
  if (!this.runWorkersLocked) {
53
+ this.logger.info(`Starting ${this.workers.length} workers...`);
39
54
  this.runWorkersLocked = true;
40
- async.each(this.workers, (worker, _, done) => {
41
- worker.run(done);
55
+ async.eachOf(this.workers, (worker, index, done) => {
56
+ this.logger.debug(`Starting worker ${index + 1}/${this.workers.length} (ID: ${worker.getId()})`);
57
+ worker.run((err) => {
58
+ if (err) {
59
+ this.logger.error(`Failed to start worker ${index + 1}/${this.workers.length} (ID: ${worker.getId()}): ${err.message}`, err);
60
+ }
61
+ else {
62
+ this.logger.debug(`Worker ${index + 1}/${this.workers.length} (ID: ${worker.getId()}) started successfully`);
63
+ }
64
+ done(err);
65
+ });
42
66
  }, (err) => {
43
67
  this.runWorkersLocked = false;
68
+ if (err) {
69
+ this.logger.error(`Error starting workers: ${err.message}`, err);
70
+ }
71
+ else {
72
+ this.logger.info(`All ${this.workers.length} workers started successfully`);
73
+ }
44
74
  cb(err);
45
75
  });
46
76
  }
47
- else
77
+ else {
78
+ this.logger.warn('Attempted to run workers while already locked');
48
79
  cb(new AbortError());
80
+ }
49
81
  };
50
82
  shutDownWorkers = (cb) => {
51
83
  if (!this.runWorkersLocked) {
84
+ this.logger.info(`Shutting down ${this.workers.length} workers...`);
52
85
  this.runWorkersLocked = true;
53
- async.each(this.workers, (worker, _, done) => {
54
- worker.shutdown(() => done());
86
+ async.eachOf(this.workers, (worker, index, done) => {
87
+ this.logger.debug(`Shutting down worker ${index + 1}/${this.workers.length} (ID: ${worker.getId()})`);
88
+ worker.shutdown((err) => {
89
+ if (err) {
90
+ this.logger.warn(`Error shutting down worker ${index + 1}/${this.workers.length} (ID: ${worker.getId()}): ${err.message}`);
91
+ }
92
+ else {
93
+ this.logger.debug(`Worker ${index + 1}/${this.workers.length} (ID: ${worker.getId()}) shut down successfully`);
94
+ }
95
+ done();
96
+ });
55
97
  }, () => {
56
98
  this.workers = [];
57
99
  this.runWorkersLocked = false;
100
+ this.logger.info('All workers have been shut down');
58
101
  cb();
59
102
  });
60
103
  }
61
- else
104
+ else {
105
+ this.logger.debug('Workers shutdown requested but workers are locked, retrying in 1 second...');
62
106
  setTimeout(() => this.shutDownWorkers(cb), 1000);
107
+ }
63
108
  };
64
109
  releaseLock = (cb) => {
65
- this.locker.releaseLock(cb);
110
+ this.logger.debug('Releasing lock...');
111
+ this.locker.releaseLock((err) => {
112
+ if (err) {
113
+ this.logger.error(`Failed to release lock: ${err.message}`, err);
114
+ }
115
+ else {
116
+ this.logger.info('Lock released successfully');
117
+ }
118
+ cb(err);
119
+ });
66
120
  };
67
121
  getLogger() {
68
122
  return this.logger;
69
123
  }
70
124
  goingUp() {
125
+ this.logger.debug('WorkerResourceGroup going up...');
71
126
  return super.goingUp().concat([this.lock, this.runWorkers]);
72
127
  }
73
128
  goingDown() {
129
+ this.logger.debug('WorkerResourceGroup going down...');
74
130
  return [this.shutDownWorkers, this.releaseLock].concat(super.goingDown());
75
131
  }
76
132
  handleError(err) {
77
133
  if (this.isRunning()) {
134
+ this.logger.error(`WorkerResourceGroup error: ${err.message}`, err);
78
135
  this.emit('workerResourceGroup.error', err);
79
136
  super.handleError(err);
80
137
  }
81
138
  }
82
139
  addWorker = (filename, payload) => {
83
- const worker = new WorkerRunnable(filename, payload);
84
- worker.on('worker.error', (err) => this.handleError(err));
140
+ this.logger.debug(`Adding worker from file: ${filename}`);
141
+ const worker = new WorkerRunnable(filename, payload, this.logger);
142
+ worker.on('worker.error', (err) => {
143
+ this.logger.error(`Worker error from ${filename}: ${err.message}`, err);
144
+ this.handleError(err);
145
+ });
85
146
  this.workers.push(worker);
147
+ this.logger.info(`Worker added from file: ${filename}, total workers: ${this.workers.length}`);
86
148
  };
87
149
  loadFromDir = (workersDir, payload, cb) => {
88
150
  if (this.isDown() && !this.isGoingUp()) {
151
+ this.logger.info(`Loading workers from directory: ${workersDir}`);
89
152
  readdir(workersDir, (err, files) => {
90
- if (err)
153
+ if (err) {
154
+ this.logger.error(`Failed to read workers directory ${workersDir}: ${err.message}`, err);
91
155
  cb(err);
156
+ }
92
157
  else {
93
- async.each(files ?? [], (file, _, done) => {
158
+ this.logger.debug(`Found ${files.length} files in workers directory`);
159
+ let workerCount = 0;
160
+ async.eachOf(files ?? [], (file, index, done) => {
94
161
  if (file.endsWith('.worker.js')) {
95
162
  const filepath = path.resolve(workersDir, file);
163
+ this.logger.debug(`Loading worker file ${index + 1}/${files.length}: ${file}`);
96
164
  this.addWorker(filepath, payload);
165
+ workerCount++;
97
166
  done();
98
167
  }
99
- else
168
+ else {
169
+ this.logger.debug(`Skipping non-worker file: ${file}`);
100
170
  done();
101
- }, (err) => cb(err));
171
+ }
172
+ }, (err) => {
173
+ if (err) {
174
+ this.logger.error(`Error loading workers: ${err.message}`, err);
175
+ }
176
+ else {
177
+ this.logger.info(`Successfully loaded ${workerCount} workers from ${files.length} files`);
178
+ }
179
+ cb(err);
180
+ });
102
181
  }
103
182
  });
104
183
  }
184
+ else {
185
+ this.logger.warn('Cannot load workers: WorkerResourceGroup is not in DOWN state');
186
+ cb(new Error('Cannot load workers: WorkerResourceGroup is not in DOWN state'));
187
+ }
105
188
  };
106
189
  }
107
190
  //# sourceMappingURL=worker-resource-group.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-resource-group.js","sourceRoot":"","sources":["../../../../src/worker/worker-resource-group.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-resource-group.js","sourceRoot":"","sources":["../../../../src/worker/worker-resource-group.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import { ICallback } from '../common/index.js';
2
+ import { ILogger } from '../logger/index.js';
2
3
  import { PowerSwitch } from '../power-switch/index.js';
3
4
  import { EWorkerType, IWorkerRunnable } from './types/index.js';
4
5
  import { Worker } from './worker.js';
5
6
  export declare class WorkerRunnable<InitialPayload> extends Worker<void, void> implements IWorkerRunnable {
6
7
  protected readonly type: EWorkerType;
7
8
  protected readonly powerSwitch: PowerSwitch;
8
- constructor(workerFilename: string, initialPayload?: InitialPayload);
9
+ constructor(workerFilename: string, initialPayload?: InitialPayload, logger?: ILogger);
9
10
  run(cb: ICallback<void>): void;
10
11
  shutdown(cb: ICallback<void>): void;
11
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"worker-runnable.d.ts","sourceRoot":"","sources":["../../../../src/worker/worker-runnable.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAKvD,OAAO,EAEL,WAAW,EACX,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qBAAa,cAAc,CAAC,cAAc,CACxC,SAAQ,MAAM,CAAC,IAAI,EAAE,IAAI,CACzB,YAAW,eAAe;IAE1B,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAwB;IAC5D,SAAS,CAAC,QAAQ,CAAC,WAAW,cAAC;gBAEnB,cAAc,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,cAAc;IAKnE,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC;IAUd,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC;CAStC"}
1
+ {"version":3,"file":"worker-runnable.d.ts","sourceRoot":"","sources":["../../../../src/worker/worker-runnable.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAKvD,OAAO,EAEL,WAAW,EACX,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,qBAAa,cAAc,CAAC,cAAc,CACxC,SAAQ,MAAM,CAAC,IAAI,EAAE,IAAI,CACzB,YAAW,eAAe;IAE1B,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAwB;IAC5D,SAAS,CAAC,QAAQ,CAAC,WAAW,cAAC;gBAG7B,cAAc,EAAE,MAAM,EACtB,cAAc,CAAC,EAAE,cAAc,EAC/B,MAAM,CAAC,EAAE,OAAO;IAclB,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC;IAwBd,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC;CA4BtC"}
@@ -5,31 +5,60 @@ import { Worker } from './worker.js';
5
5
  export class WorkerRunnable extends Worker {
6
6
  type = EWorkerType.RUNNABLE;
7
7
  powerSwitch;
8
- constructor(workerFilename, initialPayload) {
8
+ constructor(workerFilename, initialPayload, logger) {
9
9
  super(workerFilename, initialPayload);
10
+ this.logger = logger ?? this.logger;
10
11
  this.powerSwitch = new PowerSwitch();
12
+ this.logger.info(`WorkerRunnable instance created for ${workerFilename}`);
13
+ this.logger.debug('WorkerRunnable initialization details', {
14
+ id: this.id,
15
+ type: EWorkerType[this.type],
16
+ hasCustomLogger: !!logger,
17
+ initialPayload: this.initialPayload ? 'provided' : 'none',
18
+ });
11
19
  }
12
20
  run(cb) {
21
+ this.logger.info(`Attempting to run worker ${this.id}`);
13
22
  const r = this.powerSwitch.goingUp();
14
23
  if (r) {
24
+ this.logger.debug('Power switch state changed to going up');
25
+ this.logger.debug('Registering worker thread event handlers');
15
26
  this.registerEvents(this);
27
+ this.logger.debug(`Posting RUN message to worker thread`);
16
28
  this.postMessage({ type: EWorkerThreadParentMessage.RUN });
29
+ this.logger.debug('Committing power switch state change');
17
30
  this.powerSwitch.commit();
31
+ this.logger.info(`Worker ${this.id} started successfully`);
18
32
  cb();
19
33
  }
20
- else
34
+ else {
35
+ this.logger.warn(`Cannot start worker ${this.id}: already running`);
21
36
  cb(new WorkerAlreadyRunningError());
37
+ }
22
38
  }
23
39
  shutdown(cb) {
40
+ this.logger.info(`Attempting to shut down worker ${this.id}`);
24
41
  const r = this.powerSwitch.goingDown();
25
42
  if (r) {
26
- super.shutdown(() => {
43
+ this.logger.debug('Power switch state changed to going down');
44
+ this.logger.debug('Calling parent shutdown method');
45
+ super.shutdown((err) => {
46
+ if (err) {
47
+ this.logger.warn(`Error during worker ${this.id} shutdown: ${err.message}`, {
48
+ error: err.message,
49
+ stack: err.stack,
50
+ });
51
+ }
52
+ this.logger.debug('Committing power switch state change');
27
53
  this.powerSwitch.commit();
54
+ this.logger.info(`Worker ${this.id} shut down successfully`);
28
55
  cb();
29
56
  });
30
57
  }
31
- else
58
+ else {
59
+ this.logger.warn(`Cannot shut down worker ${this.id}: already down`);
32
60
  cb(new WorkerAlreadyDownError());
61
+ }
33
62
  }
34
63
  }
35
64
  //# sourceMappingURL=worker-runnable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-runnable.js","sourceRoot":"","sources":["../../../../src/worker/worker-runnable.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EACL,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,0BAA0B,EAC1B,WAAW,GAEZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,OAAO,cACX,SAAQ,MAAkB;IAGP,IAAI,GAAgB,WAAW,CAAC,QAAQ,CAAC;IACzC,WAAW,CAAC;IAE/B,YAAY,cAAsB,EAAE,cAA+B;QACjE,KAAK,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACvC,CAAC;IAED,GAAG,CAAC,EAAmB;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC;YACN,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,0BAA0B,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAC1B,EAAE,EAAE,CAAC;QACP,CAAC;;YAAM,EAAE,CAAC,IAAI,yBAAyB,EAAE,CAAC,CAAC;IAC7C,CAAC;IAEQ,QAAQ,CAAC,EAAmB;QACnC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,EAAE,CAAC;YACN,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;gBAClB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;gBAC1B,EAAE,EAAE,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC;;YAAM,EAAE,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF"}
1
+ {"version":3,"file":"worker-runnable.js","sourceRoot":"","sources":["../../../../src/worker/worker-runnable.ts"],"names":[],"mappings":"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"}
@@ -8,10 +8,13 @@ export type TWorkerEvent = {
8
8
  };
9
9
  export declare abstract class Worker<Payload, Reply> extends EventEmitter<TWorkerEvent> {
10
10
  protected abstract readonly type: EWorkerType;
11
+ protected readonly id: `${string}-${string}-${string}-${string}-${string}`;
11
12
  protected readonly workerFilename: string;
12
13
  protected readonly initialPayload: unknown;
13
14
  protected workerThread: WorkerThread | null;
14
- constructor(workerFilename: string, initialPayload?: unknown);
15
+ protected logger: import("../logger/index.js").ILogger;
16
+ protected constructor(workerFilename: string, initialPayload?: unknown);
17
+ getId(): string;
15
18
  protected getWorkerThread(): WorkerThread;
16
19
  protected registerEvents(cb: ICallback<Reply> | Worker<Payload, Reply>): void;
17
20
  postMessage(message: TWorkerThreadParentMessage): void;
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../../src/worker/worker.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAGL,WAAW,EAEX,0BAA0B,EAC3B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,YAAY,GAAG;IACzB,cAAc,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IACrC,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3C,CAAC;AAYF,8BAAsB,MAAM,CAC1B,OAAO,EACP,KAAK,CACL,SAAQ,YAAY,CAAC,YAAY,CAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,cAAc,SAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,cAAc,UAAC;IAClC,SAAS,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAQ;gBAEvC,cAAc,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO;IAoB5D,SAAS,CAAC,eAAe,IAAI,YAAY;IAuCzC,SAAS,CAAC,cAAc,CACtB,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAC5C,IAAI;IAmCP,WAAW,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAItD,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC;CAS7B"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../../src/worker/worker.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAIL,WAAW,EAEX,0BAA0B,EAC3B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,YAAY,GAAG;IACzB,cAAc,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IACrC,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3C,CAAC;AAYF,8BAAsB,MAAM,CAC1B,OAAO,EACP,KAAK,CACL,SAAQ,YAAY,CAAC,YAAY,CAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,EAAE,sDAAC;IACtB,SAAS,CAAC,QAAQ,CAAC,cAAc,SAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,cAAc,UAAC;IAClC,SAAS,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAQ;IACnD,SAAS,CAAC,MAAM,uCAAC;IAEjB,SAAS,aAAa,cAAc,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO;IAmBtE,KAAK,IAAI,MAAM;IAkBf,SAAS,CAAC,eAAe,IAAI,YAAY;IAsGzC,SAAS,CAAC,cAAc,CACtB,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAC5C,IAAI;IAoGP,WAAW,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAiCtD,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC;CA8B7B"}
@@ -1,94 +1,245 @@
1
+ import { randomUUID } from 'node:crypto';
1
2
  import { resolve } from 'path';
2
3
  import { Worker as WorkerThread } from 'worker_threads';
3
4
  import { env } from '../env/index.js';
4
5
  import { EventEmitter } from '../event/index.js';
6
+ import { logger } from '../logger/index.js';
5
7
  import { WorkerThreadError } from './errors/index.js';
6
- import { EWorkerThreadChildExecutionCode, EWorkerThreadChildExitCode, } from './types/index.js';
8
+ import { EWorkerThreadChildExecutionCode, EWorkerThreadChildExitCode, EWorkerThreadParentMessage, EWorkerType, } from './types/index.js';
7
9
  const dir = env.getCurrentDir();
8
10
  export class Worker extends EventEmitter {
11
+ id;
9
12
  workerFilename;
10
13
  initialPayload;
11
14
  workerThread = null;
15
+ logger;
12
16
  constructor(workerFilename, initialPayload) {
13
17
  super();
18
+ this.id = randomUUID();
14
19
  this.workerFilename = workerFilename;
15
20
  this.initialPayload = initialPayload;
21
+ this.logger = logger.getLogger({ enabled: false });
22
+ this.logger.info(`Worker instance created for ${workerFilename}`);
23
+ this.logger.debug('Worker initialization details', {
24
+ id: this.id,
25
+ filename: workerFilename,
26
+ initialPayload: this.initialPayload ? 'provided' : 'none',
27
+ });
28
+ }
29
+ getId() {
30
+ return this.id;
16
31
  }
17
32
  getWorkerThread() {
18
33
  if (!this.workerThread) {
19
- this.workerThread = new WorkerThread(resolve(dir, './worker-thread/worker-thread.js'), {
20
- workerData: {
21
- filename: this.workerFilename,
22
- initialPayload: this.initialPayload,
23
- type: this.type,
24
- },
25
- });
26
- this.workerThread.on('messageerror', (err) => {
27
- console.error(err);
28
- });
29
- this.workerThread.on('error', (err) => {
30
- console.error(err);
31
- });
32
- this.workerThread.on('exit', () => {
33
- this.workerThread = null;
34
+ const workerThreadPath = resolve(dir, './worker-thread/worker-thread.js');
35
+ this.logger.info(`Creating new worker thread from ${workerThreadPath}`);
36
+ this.logger.debug('Worker thread configuration', {
37
+ filename: this.workerFilename,
38
+ type: EWorkerType[this.type],
39
+ workerThreadPath,
34
40
  });
41
+ try {
42
+ this.workerThread = new WorkerThread(workerThreadPath, {
43
+ workerData: {
44
+ filename: this.workerFilename,
45
+ initialPayload: this.initialPayload,
46
+ type: this.type,
47
+ },
48
+ stdout: true,
49
+ });
50
+ this.logger.debug('Worker thread created successfully');
51
+ if (this.workerThread.stdout) {
52
+ this.logger.debug('Setting up stdout capture for worker thread');
53
+ this.workerThread.stdout.on('data', (data) => {
54
+ const output = data.toString().trim();
55
+ if (output) {
56
+ this.logger.debug(output);
57
+ }
58
+ });
59
+ }
60
+ else {
61
+ this.logger.warn('Worker thread stdout is not available');
62
+ }
63
+ if (this.workerThread.stderr) {
64
+ this.logger.debug('Setting up stderr capture for worker thread');
65
+ this.workerThread.stderr.on('data', (data) => {
66
+ const output = data.toString().trim();
67
+ if (output) {
68
+ this.logger.error(output);
69
+ }
70
+ });
71
+ }
72
+ else {
73
+ this.logger.warn('Worker thread stderr is not available');
74
+ }
75
+ this.workerThread.on('messageerror', (err) => {
76
+ this.logger.error(`Worker message deserialization error: ${err.message}`, {
77
+ error: err.message,
78
+ stack: err.stack,
79
+ name: err.name,
80
+ });
81
+ });
82
+ this.workerThread.on('error', (err) => {
83
+ this.logger.error(`Worker uncaught exception: ${err.message}`, {
84
+ error: err.message,
85
+ stack: err.stack,
86
+ name: err.name,
87
+ });
88
+ });
89
+ this.workerThread.on('exit', (code) => {
90
+ if (code === 0) {
91
+ this.logger.info('Worker thread exited successfully with code 0');
92
+ }
93
+ else {
94
+ this.logger.warn(`Worker thread exited with code ${code}`);
95
+ }
96
+ this.workerThread = null;
97
+ });
98
+ }
99
+ catch (err) {
100
+ const error = err instanceof Error ? err : new Error('Unknown error');
101
+ this.logger.error(`Failed to create worker thread: ${error.message}`, {
102
+ error: error.message,
103
+ stack: error.stack,
104
+ });
105
+ throw err;
106
+ }
107
+ }
108
+ else {
109
+ this.logger.debug('Reusing existing worker thread');
35
110
  }
36
111
  return this.workerThread;
37
112
  }
38
113
  registerEvents(cb) {
39
- const worker = this.getWorkerThread();
40
- const cleanUp = () => {
41
- worker
42
- .removeListener('message', onMessage)
43
- .removeListener('exit', onExit);
44
- };
45
- const callback = (err, data) => {
46
- if (err) {
47
- if (cb instanceof Worker) {
48
- this.emit('worker.error', err);
114
+ try {
115
+ const worker = this.getWorkerThread();
116
+ this.logger.debug('Registering worker thread event handlers');
117
+ const cleanUp = () => {
118
+ this.logger.debug('Cleaning up worker thread event listeners');
119
+ worker
120
+ .removeListener('message', onMessage)
121
+ .removeListener('exit', onExit);
122
+ };
123
+ const callback = (err, data) => {
124
+ if (err) {
125
+ this.logger.error(`Worker callback error: ${err.message}`, {
126
+ error: err.message,
127
+ stack: err.stack,
128
+ name: err.name,
129
+ });
130
+ if (cb instanceof Worker) {
131
+ this.logger.debug('Emitting worker.error event');
132
+ this.emit('worker.error', err);
133
+ }
134
+ else {
135
+ this.logger.debug('Calling error callback');
136
+ cb(err);
137
+ }
49
138
  }
50
- else
51
- cb(err);
52
- }
53
- else {
54
- if (cb instanceof Worker)
55
- this.emit('worker.data', data);
56
- else
57
- cb(null, data);
58
- }
59
- };
60
- const onMessage = (msg) => {
61
- cleanUp();
62
- if (msg.code !== EWorkerThreadChildExecutionCode.OK) {
139
+ else {
140
+ this.logger.debug('Worker callback success');
141
+ if (cb instanceof Worker) {
142
+ this.logger.debug('Emitting worker.data event');
143
+ this.emit('worker.data', data);
144
+ }
145
+ else {
146
+ this.logger.debug('Calling success callback');
147
+ cb(null, data);
148
+ }
149
+ }
150
+ };
151
+ const onMessage = (msg) => {
152
+ this.logger.debug(`Received message from worker thread with code ${msg.code}`, {
153
+ code: msg.code,
154
+ hasData: msg.data !== undefined,
155
+ hasError: msg.error !== null && msg.error !== undefined,
156
+ });
157
+ cleanUp();
158
+ if (msg.code !== EWorkerThreadChildExecutionCode.OK) {
159
+ const errorCode = EWorkerThreadChildExecutionCode[msg.code] ||
160
+ EWorkerThreadChildExitCode[msg.code] ||
161
+ `Unknown(${msg.code})`;
162
+ this.logger.error(`Worker thread execution error: ${errorCode}`, {
163
+ code: msg.code,
164
+ errorCode,
165
+ error: msg.error,
166
+ });
167
+ callback(new WorkerThreadError(msg));
168
+ }
169
+ else {
170
+ this.logger.debug('Worker thread execution successful');
171
+ callback(null, msg.data);
172
+ }
173
+ };
174
+ const onExit = (code) => {
175
+ this.logger.warn(`Worker thread exited unexpectedly with code ${code}`);
176
+ cleanUp();
177
+ const msg = {
178
+ code: EWorkerThreadChildExitCode.TERMINATED,
179
+ error: null,
180
+ };
181
+ this.logger.error('Worker thread terminated', {
182
+ exitCode: code,
183
+ errorCode: EWorkerThreadChildExitCode[EWorkerThreadChildExitCode.TERMINATED],
184
+ });
63
185
  callback(new WorkerThreadError(msg));
64
- }
65
- else
66
- callback(null, msg.data);
67
- };
68
- const onExit = () => {
69
- cleanUp();
70
- const msg = {
71
- code: EWorkerThreadChildExitCode.TERMINATED,
72
- error: null,
73
186
  };
74
- callback(new WorkerThreadError(msg));
75
- };
76
- worker.once('message', onMessage);
77
- worker.once('exit', onExit);
187
+ worker.once('message', onMessage);
188
+ worker.once('exit', onExit);
189
+ this.logger.debug('Worker thread event handlers registered successfully');
190
+ }
191
+ catch (err) {
192
+ this.logger.error(`Failed to register worker thread events: ${err instanceof Error ? err.message : 'unknown error'}`, err);
193
+ throw err;
194
+ }
78
195
  }
79
196
  postMessage(message) {
80
- this.getWorkerThread().postMessage(message);
197
+ try {
198
+ this.logger.debug(`Posting message to worker thread: ${EWorkerThreadParentMessage[message.type]}`, {
199
+ messageType: EWorkerThreadParentMessage[message.type],
200
+ hasPayload: 'payload' in message && message.payload !== undefined,
201
+ });
202
+ const worker = this.getWorkerThread();
203
+ worker.postMessage(message);
204
+ this.logger.debug('Message posted successfully to worker thread');
205
+ }
206
+ catch (err) {
207
+ const error = err instanceof Error ? err : new Error('Unknown error');
208
+ this.logger.error(`Failed to post message to worker thread: ${error.message}`, {
209
+ error: error.message,
210
+ stack: error.stack,
211
+ messageType: message.type,
212
+ });
213
+ throw err;
214
+ }
81
215
  }
82
216
  shutdown(cb) {
217
+ this.logger.info('Shutting down worker thread');
83
218
  const callback = () => {
219
+ this.logger.info('Worker thread shutdown complete');
84
220
  this.workerThread = null;
85
221
  cb();
86
222
  };
87
223
  if (this.workerThread) {
88
- this.workerThread.terminate().then(callback).catch(callback);
224
+ this.logger.debug('Terminating active worker thread');
225
+ this.workerThread
226
+ .terminate()
227
+ .then((code) => {
228
+ this.logger.debug(`Worker thread terminated with exit code ${code}`);
229
+ callback();
230
+ })
231
+ .catch((err) => {
232
+ this.logger.error(`Error terminating worker thread: ${err.message}`, {
233
+ error: err.message,
234
+ stack: err.stack,
235
+ });
236
+ callback();
237
+ });
89
238
  }
90
- else
239
+ else {
240
+ this.logger.debug('No active worker thread to terminate');
91
241
  cb();
242
+ }
92
243
  }
93
244
  }
94
245
  //# sourceMappingURL=worker.js.map