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.
- package/dist/runtime/application/api/api.js +1 -1
- package/dist/runtime/jobs/job.d.ts +1 -0
- package/dist/runtime/server/jobs.js +20 -28
- package/dist/runtime/server/jobs.js.map +1 -1
- package/dist/runtime/server/managed-worker.d.ts +8 -1
- package/dist/runtime/server/managed-worker.js +29 -3
- package/dist/runtime/server/managed-worker.js.map +1 -1
- package/package.json +11 -11
- package/src/runtime/application/api/api.ts +1 -1
- package/src/runtime/server/jobs.ts +20 -40
- package/src/runtime/server/managed-worker.ts +32 -3
|
@@ -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.
|
|
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
|
-
//
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
166
|
+
await pool.stopAll();
|
|
176
167
|
}
|
|
177
168
|
catch (error) {
|
|
178
|
-
logger.warn({ error }, 'Failed to
|
|
169
|
+
logger.warn({ error }, 'Failed to stop job pool');
|
|
179
170
|
}
|
|
180
171
|
}));
|
|
181
|
-
this.
|
|
182
|
-
|
|
183
|
-
await Promise.all(
|
|
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
|
|
176
|
+
await queue.close();
|
|
186
177
|
}
|
|
187
178
|
catch (error) {
|
|
188
|
-
logger.warn({ error }, 'Failed to
|
|
179
|
+
logger.warn({ error }, 'Failed to close Jobs UI queue');
|
|
189
180
|
}
|
|
190
181
|
}));
|
|
191
|
-
this.
|
|
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
|
-
|
|
128
|
-
|
|
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.
|
|
32
|
-
"@nmtjs/
|
|
33
|
-
"@nmtjs/contract": "0.15.0-beta.
|
|
34
|
-
"@nmtjs/
|
|
35
|
-
"@nmtjs/
|
|
36
|
-
"@nmtjs/
|
|
37
|
-
"@nmtjs/protocol": "0.15.0-beta.
|
|
38
|
-
"@nmtjs/type": "0.15.0-beta.
|
|
39
|
-
"@nmtjs/
|
|
40
|
-
"@nmtjs/ws-transport": "0.15.0-beta.
|
|
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.
|
|
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.
|
|
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
|
-
//
|
|
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
|
-
|
|
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.
|
|
250
|
+
Array.from(this.pools.values()).map(async (pool) => {
|
|
272
251
|
try {
|
|
273
|
-
await
|
|
252
|
+
await pool.stopAll()
|
|
274
253
|
} catch (error) {
|
|
275
|
-
logger.warn({ error }, 'Failed to
|
|
254
|
+
logger.warn({ error }, 'Failed to stop job pool')
|
|
276
255
|
}
|
|
277
256
|
}),
|
|
278
257
|
)
|
|
279
|
-
this.
|
|
280
|
-
this.ui = undefined
|
|
258
|
+
this.pools.clear()
|
|
281
259
|
|
|
260
|
+
// Close UI queues last (non-critical)
|
|
282
261
|
await Promise.all(
|
|
283
|
-
|
|
262
|
+
this.uiQueues.map(async (queue) => {
|
|
284
263
|
try {
|
|
285
|
-
await
|
|
264
|
+
await queue.close()
|
|
286
265
|
} catch (error) {
|
|
287
|
-
logger.warn({ error }, 'Failed to
|
|
266
|
+
logger.warn({ error }, 'Failed to close Jobs UI queue')
|
|
288
267
|
}
|
|
289
268
|
}),
|
|
290
269
|
)
|
|
291
|
-
this.
|
|
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
|
-
|
|
203
|
-
|
|
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
|
*/
|