nmtjs 0.15.0-beta.41 → 0.15.0-beta.43

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.
@@ -67,7 +67,7 @@ export class ApplicationApi {
67
67
  const handled = await this.handleFilters(callOptions, error);
68
68
  if (handled === error && error instanceof ProtocolError === false) {
69
69
  const logError = new Error('Unhandled error', { cause: error });
70
- this.options.logger.debug(logError);
70
+ this.options.logger.error(logError);
71
71
  throw new ApiError(ErrorCode.InternalServerError, 'Internal Server Error');
72
72
  }
73
73
  throw handled;
@@ -102,6 +102,7 @@ export declare class Job<in out Name extends string = string, in out Deps extend
102
102
  output: t.infer.decode.output<Output>;
103
103
  progress: t.infer.decode.output<Progress>;
104
104
  };
105
+ [kJobKey]: true;
105
106
  steps: Steps;
106
107
  conditions: Map<number, JobCondition<any, any, any, any, any>>;
107
108
  returnHandler?: JobReturnHandler<Deps, this['_']['result'], Input, Output, Data, Progress>;
@@ -136,8 +136,6 @@ export class ApplicationServerJobs {
136
136
  }
137
137
  async stop() {
138
138
  const { logger } = this.params;
139
- // TODO: make configurable
140
- const closeTimeout = 10_000; // 10 seconds timeout for graceful close
141
139
  if (this.ui) {
142
140
  await new Promise((resolve) => {
143
141
  this.ui?.close(() => resolve());
@@ -145,50 +143,44 @@ export class ApplicationServerJobs {
145
143
  logger.warn({ error }, 'Failed to stop Jobs UI server');
146
144
  });
147
145
  }
148
- // Stop accepting new jobs first.
146
+ // Force-close BullMQ workers immediately — stops accepting new jobs
147
+ // and doesn't wait for in-flight processor callbacks.
148
+ // We must use force=true on the first call because BullMQ caches the
149
+ // closing promise: a second call with force=true returns the original
150
+ // (non-force) promise, making it ineffective.
151
+ // Interrupted jobs will be retried via BullMQ's stalled job mechanism.
149
152
  await Promise.all([...this.queueWorkers].map(async (worker) => {
150
153
  try {
151
- // Try graceful close with timeout
152
- const closePromise = worker.close();
153
- const timeoutPromise = new Promise((resolve) => setTimeout(() => resolve('timeout'), closeTimeout));
154
- const result = await Promise.race([closePromise, timeoutPromise]);
155
- if (result === 'timeout') {
156
- logger.warn({ worker: worker.name }, 'Worker close timed out, forcing close');
157
- const forceClosePromise = worker.close(true);
158
- const forceTimeout = new Promise((resolve) => setTimeout(() => resolve('timeout'), closeTimeout));
159
- const forceResult = await Promise.race([
160
- forceClosePromise,
161
- forceTimeout,
162
- ]);
163
- if (forceResult === 'timeout') {
164
- logger.error({ worker: worker.name }, 'Force close timed out, abandoning worker');
165
- }
166
- }
154
+ await worker.close(true);
167
155
  }
168
156
  catch (error) {
169
157
  logger.warn({ error }, 'Failed to close BullMQ worker');
170
158
  }
171
159
  }));
172
160
  this.queueWorkers.clear();
173
- await Promise.all(this.uiQueues.map(async (queue) => {
161
+ // Stop job runner thread pools — sends 'stop' to threads, waits for
162
+ // graceful exit with timeout, force-kills if needed.
163
+ // Pending pool.run() calls will be rejected by ManagedWorker.stop().
164
+ await Promise.all(Array.from(this.pools.values()).map(async (pool) => {
174
165
  try {
175
- await queue.close();
166
+ await pool.stopAll();
176
167
  }
177
168
  catch (error) {
178
- logger.warn({ error }, 'Failed to close Jobs UI queue');
169
+ logger.warn({ error }, 'Failed to stop job pool');
179
170
  }
180
171
  }));
181
- this.uiQueues = [];
182
- this.ui = undefined;
183
- await Promise.all(Array.from(this.pools.values()).map(async (pool) => {
172
+ this.pools.clear();
173
+ // Close UI queues last (non-critical)
174
+ await Promise.all(this.uiQueues.map(async (queue) => {
184
175
  try {
185
- await pool.stopAll();
176
+ await queue.close();
186
177
  }
187
178
  catch (error) {
188
- logger.warn({ error }, 'Failed to stop job pool');
179
+ logger.warn({ error }, 'Failed to close Jobs UI queue');
189
180
  }
190
181
  }));
191
- this.pools.clear();
182
+ this.uiQueues = [];
183
+ this.ui = undefined;
192
184
  }
193
185
  /**
194
186
  * Get a job pool by type.
@@ -1 +1 @@
1
- {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/runtime/server/jobs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../../src/runtime/server/jobs.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,7 @@ export declare class ManagedWorker extends EventEmitter<ManagedWorkerEvents> {
65
65
  private port;
66
66
  private restartTimer;
67
67
  private startPromise;
68
+ private pendingTaskIds;
68
69
  private logger;
69
70
  constructor(config: ManagedWorkerConfig, policy: ErrorPolicy, logger: Logger);
70
71
  /** Current worker state */
@@ -88,7 +89,7 @@ export declare class ManagedWorker extends EventEmitter<ManagedWorkerEvents> {
88
89
  /**
89
90
  * Stop the worker.
90
91
  * Can be called from any state except 'stopped'.
91
- * Clears any pending restart timers.
92
+ * Clears any pending restart timers and rejects pending run() tasks.
92
93
  */
93
94
  stop(): Promise<void>;
94
95
  /**
@@ -130,6 +131,12 @@ export declare class ManagedWorker extends EventEmitter<ManagedWorkerEvents> {
130
131
  * Cleanup internal state.
131
132
  */
132
133
  private cleanup;
134
+ /**
135
+ * Reject all pending run() calls by emitting an error result
136
+ * for each tracked task id. This unblocks callers waiting on
137
+ * `once(this, 'task-<id>')` so they don't hang during shutdown.
138
+ */
139
+ private rejectPendingTasks;
133
140
  /**
134
141
  * Transition to a new state, emitting the state-change event.
135
142
  */
@@ -44,6 +44,7 @@ export class ManagedWorker extends EventEmitter {
44
44
  port = null;
45
45
  restartTimer = null;
46
46
  startPromise = null;
47
+ pendingTaskIds = new Set();
47
48
  logger;
48
49
  constructor(config, policy, logger) {
49
50
  super();
@@ -99,13 +100,17 @@ export class ManagedWorker extends EventEmitter {
99
100
  /**
100
101
  * Stop the worker.
101
102
  * Can be called from any state except 'stopped'.
102
- * Clears any pending restart timers.
103
+ * Clears any pending restart timers and rejects pending run() tasks.
103
104
  */
104
105
  async stop() {
105
106
  this.clearRestartTimer();
106
107
  if (this.state === 'stopped')
107
108
  return;
108
109
  this.transition('stopping');
110
+ // Reject any pending run() calls that are waiting for task results.
111
+ // Without this, callers of pool.run() would hang forever since the
112
+ // port is about to be closed and task-* events will never fire.
113
+ this.rejectPendingTasks();
109
114
  try {
110
115
  await this.terminateWorker();
111
116
  }
@@ -123,9 +128,15 @@ export class ManagedWorker extends EventEmitter {
123
128
  throw new Error('Worker is not ready to run tasks');
124
129
  }
125
130
  const id = crypto.randomUUID();
131
+ this.pendingTaskIds.add(id);
126
132
  this.send('task', { id, task });
127
- const [result] = (await once(this, `task-${id}`));
128
- return result;
133
+ try {
134
+ const [result] = (await once(this, `task-${id}`));
135
+ return result;
136
+ }
137
+ finally {
138
+ this.pendingTaskIds.delete(id);
139
+ }
129
140
  }
130
141
  /**
131
142
  * Send a message to the worker.
@@ -338,6 +349,21 @@ export class ManagedWorker extends EventEmitter {
338
349
  this.worker = null;
339
350
  this.port = null;
340
351
  }
352
+ /**
353
+ * Reject all pending run() calls by emitting an error result
354
+ * for each tracked task id. This unblocks callers waiting on
355
+ * `once(this, 'task-<id>')` so they don't hang during shutdown.
356
+ */
357
+ rejectPendingTasks() {
358
+ for (const id of this.pendingTaskIds) {
359
+ const result = {
360
+ type: 'error',
361
+ error: new Error('Worker is shutting down'),
362
+ };
363
+ this.emit(`task-${id}`, result);
364
+ }
365
+ this.pendingTaskIds.clear();
366
+ }
341
367
  /**
342
368
  * Transition to a new state, emitting the state-change event.
343
369
  */
@@ -1 +1 @@
1
- {"version":3,"file":"managed-worker.js","sourceRoot":"","sources":["../../../src/runtime/server/managed-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"managed-worker.js","sourceRoot":"","sources":["../../../src/runtime/server/managed-worker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -28,16 +28,16 @@
28
28
  "oxc-resolver": "11.17.0",
29
29
  "prom-client": "git@github.com:siimon/prom-client.git#d4d2dcb366384833951e0116caca707b5f62aa5e",
30
30
  "vite": "8.0.0-beta.13",
31
- "@nmtjs/common": "0.15.0-beta.41",
32
- "@nmtjs/gateway": "0.15.0-beta.41",
33
- "@nmtjs/contract": "0.15.0-beta.41",
34
- "@nmtjs/core": "0.15.0-beta.41",
35
- "@nmtjs/http-transport": "0.15.0-beta.41",
36
- "@nmtjs/msgpack-format": "0.15.0-beta.41",
37
- "@nmtjs/protocol": "0.15.0-beta.41",
38
- "@nmtjs/type": "0.15.0-beta.41",
39
- "@nmtjs/json-format": "0.15.0-beta.41",
40
- "@nmtjs/ws-transport": "0.15.0-beta.41"
31
+ "@nmtjs/common": "0.15.0-beta.43",
32
+ "@nmtjs/core": "0.15.0-beta.43",
33
+ "@nmtjs/contract": "0.15.0-beta.43",
34
+ "@nmtjs/gateway": "0.15.0-beta.43",
35
+ "@nmtjs/json-format": "0.15.0-beta.43",
36
+ "@nmtjs/http-transport": "0.15.0-beta.43",
37
+ "@nmtjs/protocol": "0.15.0-beta.43",
38
+ "@nmtjs/type": "0.15.0-beta.43",
39
+ "@nmtjs/msgpack-format": "0.15.0-beta.43",
40
+ "@nmtjs/ws-transport": "0.15.0-beta.43"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@nmtjs/proxy": "1.0.0-beta.2",
@@ -59,7 +59,7 @@
59
59
  "LICENSE.md",
60
60
  "README.md"
61
61
  ],
62
- "version": "0.15.0-beta.41",
62
+ "version": "0.15.0-beta.43",
63
63
  "scripts": {
64
64
  "clean-build": "rm -rf ./dist"
65
65
  }
@@ -116,7 +116,7 @@ export class ApplicationApi implements GatewayApi {
116
116
  const handled = await this.handleFilters(callOptions, error)
117
117
  if (handled === error && error instanceof ProtocolError === false) {
118
118
  const logError = new Error('Unhandled error', { cause: error })
119
- this.options.logger.debug(logError)
119
+ this.options.logger.error(logError)
120
120
  throw new ApiError(
121
121
  ErrorCode.InternalServerError,
122
122
  'Internal Server Error',
@@ -217,8 +217,6 @@ export class ApplicationServerJobs {
217
217
 
218
218
  async stop() {
219
219
  const { logger } = this.params
220
- // TODO: make configurable
221
- const closeTimeout = 10_000 // 10 seconds timeout for graceful close
222
220
 
223
221
  if (this.ui) {
224
222
  await new Promise<void>((resolve) => {
@@ -228,38 +226,16 @@ export class ApplicationServerJobs {
228
226
  })
229
227
  }
230
228
 
231
- // Stop accepting new jobs first.
229
+ // Force-close BullMQ workers immediately — stops accepting new jobs
230
+ // and doesn't wait for in-flight processor callbacks.
231
+ // We must use force=true on the first call because BullMQ caches the
232
+ // closing promise: a second call with force=true returns the original
233
+ // (non-force) promise, making it ineffective.
234
+ // Interrupted jobs will be retried via BullMQ's stalled job mechanism.
232
235
  await Promise.all(
233
236
  [...this.queueWorkers].map(async (worker) => {
234
237
  try {
235
- // Try graceful close with timeout
236
- const closePromise = worker.close()
237
- const timeoutPromise = new Promise<'timeout'>((resolve) =>
238
- setTimeout(() => resolve('timeout'), closeTimeout),
239
- )
240
-
241
- const result = await Promise.race([closePromise, timeoutPromise])
242
-
243
- if (result === 'timeout') {
244
- logger.warn(
245
- { worker: worker.name },
246
- 'Worker close timed out, forcing close',
247
- )
248
- const forceClosePromise = worker.close(true)
249
- const forceTimeout = new Promise<'timeout'>((resolve) =>
250
- setTimeout(() => resolve('timeout'), closeTimeout),
251
- )
252
- const forceResult = await Promise.race([
253
- forceClosePromise,
254
- forceTimeout,
255
- ])
256
- if (forceResult === 'timeout') {
257
- logger.error(
258
- { worker: worker.name },
259
- 'Force close timed out, abandoning worker',
260
- )
261
- }
262
- }
238
+ await worker.close(true)
263
239
  } catch (error) {
264
240
  logger.warn({ error }, 'Failed to close BullMQ worker')
265
241
  }
@@ -267,28 +243,32 @@ export class ApplicationServerJobs {
267
243
  )
268
244
  this.queueWorkers.clear()
269
245
 
246
+ // Stop job runner thread pools — sends 'stop' to threads, waits for
247
+ // graceful exit with timeout, force-kills if needed.
248
+ // Pending pool.run() calls will be rejected by ManagedWorker.stop().
270
249
  await Promise.all(
271
- this.uiQueues.map(async (queue) => {
250
+ Array.from(this.pools.values()).map(async (pool) => {
272
251
  try {
273
- await queue.close()
252
+ await pool.stopAll()
274
253
  } catch (error) {
275
- logger.warn({ error }, 'Failed to close Jobs UI queue')
254
+ logger.warn({ error }, 'Failed to stop job pool')
276
255
  }
277
256
  }),
278
257
  )
279
- this.uiQueues = []
280
- this.ui = undefined
258
+ this.pools.clear()
281
259
 
260
+ // Close UI queues last (non-critical)
282
261
  await Promise.all(
283
- Array.from(this.pools.values()).map(async (pool) => {
262
+ this.uiQueues.map(async (queue) => {
284
263
  try {
285
- await pool.stopAll()
264
+ await queue.close()
286
265
  } catch (error) {
287
- logger.warn({ error }, 'Failed to stop job pool')
266
+ logger.warn({ error }, 'Failed to close Jobs UI queue')
288
267
  }
289
268
  }),
290
269
  )
291
- this.pools.clear()
270
+ this.uiQueues = []
271
+ this.ui = undefined
292
272
  }
293
273
 
294
274
  /**
@@ -108,6 +108,7 @@ export class ManagedWorker extends EventEmitter<ManagedWorkerEvents> {
108
108
  private port: MessagePort | null = null
109
109
  private restartTimer: ReturnType<typeof setTimeout> | null = null
110
110
  private startPromise: Promise<void> | null = null
111
+ private pendingTaskIds = new Set<string>()
111
112
  private logger: Logger
112
113
 
113
114
  constructor(
@@ -171,7 +172,7 @@ export class ManagedWorker extends EventEmitter<ManagedWorkerEvents> {
171
172
  /**
172
173
  * Stop the worker.
173
174
  * Can be called from any state except 'stopped'.
174
- * Clears any pending restart timers.
175
+ * Clears any pending restart timers and rejects pending run() tasks.
175
176
  */
176
177
  async stop(): Promise<void> {
177
178
  this.clearRestartTimer()
@@ -179,6 +180,11 @@ export class ManagedWorker extends EventEmitter<ManagedWorkerEvents> {
179
180
  if (this.state === 'stopped') return
180
181
  this.transition('stopping')
181
182
 
183
+ // Reject any pending run() calls that are waiting for task results.
184
+ // Without this, callers of pool.run() would hang forever since the
185
+ // port is about to be closed and task-* events will never fire.
186
+ this.rejectPendingTasks()
187
+
182
188
  try {
183
189
  await this.terminateWorker()
184
190
  } finally {
@@ -197,10 +203,17 @@ export class ManagedWorker extends EventEmitter<ManagedWorkerEvents> {
197
203
  }
198
204
 
199
205
  const id = crypto.randomUUID()
206
+ this.pendingTaskIds.add(id)
200
207
  this.send('task', { id, task })
201
208
 
202
- const [result] = (await once(this, `task-${id}` as any)) as [JobTaskResult]
203
- return result
209
+ try {
210
+ const [result] = (await once(this, `task-${id}` as any)) as [
211
+ JobTaskResult,
212
+ ]
213
+ return result
214
+ } finally {
215
+ this.pendingTaskIds.delete(id)
216
+ }
204
217
  }
205
218
 
206
219
  /**
@@ -453,6 +466,22 @@ export class ManagedWorker extends EventEmitter<ManagedWorkerEvents> {
453
466
  this.port = null
454
467
  }
455
468
 
469
+ /**
470
+ * Reject all pending run() calls by emitting an error result
471
+ * for each tracked task id. This unblocks callers waiting on
472
+ * `once(this, 'task-<id>')` so they don't hang during shutdown.
473
+ */
474
+ private rejectPendingTasks(): void {
475
+ for (const id of this.pendingTaskIds) {
476
+ const result: JobTaskResult = {
477
+ type: 'error',
478
+ error: new Error('Worker is shutting down'),
479
+ }
480
+ this.emit(`task-${id}` as any, result)
481
+ }
482
+ this.pendingTaskIds.clear()
483
+ }
484
+
456
485
  /**
457
486
  * Transition to a new state, emitting the state-change event.
458
487
  */