@dbos-inc/dbos-sdk 4.24.3-preview → 4.24.6-preview
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/src/system_database.d.ts.map +1 -1
- package/dist/src/system_database.js +9 -2
- package/dist/src/system_database.js.map +1 -1
- package/dist/src/wfqueue.d.ts +19 -17
- package/dist/src/wfqueue.d.ts.map +1 -1
- package/dist/src/wfqueue.js +163 -180
- package/dist/src/wfqueue.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/src/wfqueue.d.ts
CHANGED
|
@@ -120,34 +120,36 @@ declare class WFQueueRunner {
|
|
|
120
120
|
readonly wfQueuesByName: Map<string, WorkflowQueue>;
|
|
121
121
|
private isRunning;
|
|
122
122
|
private abortController?;
|
|
123
|
-
private exec?;
|
|
124
123
|
private listenQueueNames;
|
|
125
|
-
|
|
126
|
-
private readonly
|
|
124
|
+
/** Per-queue scheduling state, keyed by queue name. */
|
|
125
|
+
private readonly states;
|
|
126
|
+
/** Names already warned about colliding with an in-memory queue (warn-once). */
|
|
127
|
+
private readonly conflictWarned;
|
|
127
128
|
private static readonly defaultMinPollingIntervalMs;
|
|
128
129
|
private static readonly defaultMaxPollingIntervalMs;
|
|
129
|
-
private static readonly
|
|
130
|
+
private static readonly reconcileIntervalMs;
|
|
131
|
+
private static readonly transitionIntervalMs;
|
|
130
132
|
private readonly backoffFactor;
|
|
131
133
|
private readonly scalebackFactor;
|
|
132
134
|
private readonly jitterMin;
|
|
133
135
|
private readonly jitterMax;
|
|
134
136
|
stop(): void;
|
|
135
137
|
clearRegistrations(): void;
|
|
136
|
-
private launchQueueLoop;
|
|
137
138
|
dispatchLoop(exec: DBOSExecutor, listenQueuesArg: (WorkflowQueue | string)[] | null): Promise<void>;
|
|
138
|
-
/**
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
139
|
+
/** Resolve the listenQueues argument to the set of in-memory queues to dispatch for. */
|
|
140
|
+
private resolveInMemoryQueues;
|
|
141
|
+
/** Begin tracking a queue if it isn't already, scheduling its first poll one interval out. */
|
|
142
|
+
private ensureState;
|
|
143
|
+
/** Reconcile DB-backed queues against the queues table in one query: refresh, add, or drop them. */
|
|
144
|
+
private refreshDbQueues;
|
|
145
|
+
/** Log every queue this process will dispatch for, once at startup after discovery. */
|
|
142
146
|
private logRunningQueues;
|
|
143
|
-
/**
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
private
|
|
149
|
-
private superviseLoop;
|
|
150
|
-
private runQueue;
|
|
147
|
+
/** The single dispatcher loop: reconcile queues, transition delayed workflows once, poll due queues sequentially. */
|
|
148
|
+
private schedulerLoop;
|
|
149
|
+
/** Poll one queue once, starting ready workflows; returns true if DB contention was detected. */
|
|
150
|
+
private pollQueue;
|
|
151
|
+
/** After a poll, grow the interval on contention or shrink it toward the minimum, then schedule the next poll with jitter. */
|
|
152
|
+
private adjustInterval;
|
|
151
153
|
}
|
|
152
154
|
export declare const wfQueueRunner: WFQueueRunner;
|
|
153
155
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wfqueue.d.ts","sourceRoot":"","sources":["../../src/wfqueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAO/C,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,GAAG,IAAI,CASrE;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,cAAc,EAAE,MAAM,CAAC;IACvB,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,wFAAwF;IACxF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,2CAA2C;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+CAA+C;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,0FAA0F;IAC1F,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,uBAAuB,GAAG,0BAA0B,GAAG,eAAe,GAAG,cAAc,CAAC;AAEpG,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,oEAAoE;IACpE,UAAU,CAAC,EAAE,uBAAuB,CAAC;CACtC;AAmDD;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAS;IACjC,cAAc,EAAE,OAAO,CAAS;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAS;IAEzC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAS;gBAE1B,IAAI,EAAE,MAAM;IAExB;;;;OAIG;gBACS,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe;IAiC1D,gEAAgE;IAChE,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAazD,6EAA6E;IAC7E,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,WAAW;IAa3E;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,oBAAoB,CAAC,EAAE,cAAc,GAAG,aAAa;IAsBvF,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IASxD,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9D,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9D,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjD,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhD,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASrD,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAK7C,oBAAoB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAKnD,YAAY,IAAI,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAKnD,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAKtC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAKrC,uBAAuB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAI7D;
|
|
1
|
+
{"version":3,"file":"wfqueue.d.ts","sourceRoot":"","sources":["../../src/wfqueue.ts"],"names":[],"mappings":"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"}
|
package/dist/src/wfqueue.js
CHANGED
|
@@ -256,13 +256,15 @@ class WFQueueRunner {
|
|
|
256
256
|
wfQueuesByName = new Map();
|
|
257
257
|
isRunning = false;
|
|
258
258
|
abortController;
|
|
259
|
-
exec;
|
|
260
259
|
listenQueueNames = null;
|
|
261
|
-
|
|
262
|
-
|
|
260
|
+
/** Per-queue scheduling state, keyed by queue name. */
|
|
261
|
+
states = new Map();
|
|
262
|
+
/** Names already warned about colliding with an in-memory queue (warn-once). */
|
|
263
|
+
conflictWarned = new Set();
|
|
263
264
|
static defaultMinPollingIntervalMs = 1000;
|
|
264
265
|
static defaultMaxPollingIntervalMs = 120000;
|
|
265
|
-
static
|
|
266
|
+
static reconcileIntervalMs = 1000;
|
|
267
|
+
static transitionIntervalMs = 1000;
|
|
266
268
|
backoffFactor = 2.0;
|
|
267
269
|
scalebackFactor = 0.9;
|
|
268
270
|
jitterMin = 0.95;
|
|
@@ -276,106 +278,57 @@ class WFQueueRunner {
|
|
|
276
278
|
clearRegistrations() {
|
|
277
279
|
this.wfQueuesByName.clear();
|
|
278
280
|
}
|
|
279
|
-
launchQueueLoop(queue) {
|
|
280
|
-
if (this.runningQueueNames.has(queue.name))
|
|
281
|
-
return;
|
|
282
|
-
this.runningQueueNames.add(queue.name);
|
|
283
|
-
const loop = this.runQueue(this.exec, queue);
|
|
284
|
-
this.activeLoops.add(loop);
|
|
285
|
-
void loop.finally(() => {
|
|
286
|
-
this.activeLoops.delete(loop);
|
|
287
|
-
this.runningQueueNames.delete(queue.name);
|
|
288
|
-
});
|
|
289
|
-
}
|
|
290
281
|
async dispatchLoop(exec, listenQueuesArg) {
|
|
291
282
|
this.isRunning = true;
|
|
292
|
-
this.
|
|
283
|
+
this.states.clear();
|
|
284
|
+
this.conflictWarned.clear();
|
|
293
285
|
this.listenQueueNames = listenQueuesArg
|
|
294
286
|
? new Set(listenQueuesArg.map((entry) => (typeof entry === 'string' ? entry : entry.name)))
|
|
295
287
|
: null;
|
|
296
288
|
this.abortController = new AbortController();
|
|
297
|
-
|
|
298
|
-
//
|
|
289
|
+
const startNow = Date.now();
|
|
290
|
+
// The internal queue is process-private and bypasses the listenQueues filter.
|
|
299
291
|
const internal = this.wfQueuesByName.get(utils_1.INTERNAL_QUEUE_NAME);
|
|
300
292
|
if (internal)
|
|
301
|
-
this.
|
|
302
|
-
//
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
// supervisor below.
|
|
306
|
-
let inMemoryToLaunch;
|
|
307
|
-
if (listenQueuesArg !== null) {
|
|
308
|
-
inMemoryToLaunch = [];
|
|
309
|
-
for (const entry of listenQueuesArg) {
|
|
310
|
-
if (typeof entry === 'string') {
|
|
311
|
-
const q = this.wfQueuesByName.get(entry);
|
|
312
|
-
if (q)
|
|
313
|
-
inMemoryToLaunch.push(q);
|
|
314
|
-
}
|
|
315
|
-
else {
|
|
316
|
-
inMemoryToLaunch.push(entry);
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
else {
|
|
321
|
-
inMemoryToLaunch = Array.from(this.wfQueuesByName.values()).filter((q) => q.name !== utils_1.INTERNAL_QUEUE_NAME);
|
|
293
|
+
this.ensureState(internal, startNow);
|
|
294
|
+
// Unmatched string entries are deferred to refreshDbQueues as DB-backed queues.
|
|
295
|
+
for (const q of this.resolveInMemoryQueues(listenQueuesArg)) {
|
|
296
|
+
this.ensureState(q, startNow);
|
|
322
297
|
}
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
//
|
|
328
|
-
|
|
329
|
-
await this.discoverAndLaunchDbQueues(exec);
|
|
330
|
-
// Log everything we're now dispatching for, before the supervisor starts.
|
|
331
|
-
await this.logRunningQueues(exec);
|
|
332
|
-
// Periodic supervisor: picks up queues registered after launch.
|
|
333
|
-
const supervisor = this.superviseLoop(exec);
|
|
334
|
-
this.activeLoops.add(supervisor);
|
|
335
|
-
void supervisor.finally(() => this.activeLoops.delete(supervisor));
|
|
336
|
-
// Wait until stop() is called, then wait for all loops to drain
|
|
337
|
-
await (0, utils_1.waitForAbort)(this.abortController.signal);
|
|
338
|
-
await Promise.all(this.activeLoops);
|
|
298
|
+
// Add pre-launch DB-backed queues now so an immediate enqueue can't race the first reconcile.
|
|
299
|
+
await this.refreshDbQueues(exec, startNow);
|
|
300
|
+
// Log everything we're now dispatching for, before the loop starts.
|
|
301
|
+
this.logRunningQueues(exec);
|
|
302
|
+
// One loop drives every queue, so idle cost is O(1) not O(#queues); returns when stop() aborts.
|
|
303
|
+
await this.schedulerLoop(exec, startNow);
|
|
339
304
|
}
|
|
340
|
-
/**
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
async logRunningQueues(exec) {
|
|
345
|
-
const logger = exec.logger;
|
|
346
|
-
const merged = new Map();
|
|
347
|
-
for (const [qn, q] of this.wfQueuesByName) {
|
|
348
|
-
merged.set(qn, q);
|
|
305
|
+
/** Resolve the listenQueues argument to the set of in-memory queues to dispatch for. */
|
|
306
|
+
resolveInMemoryQueues(listenQueuesArg) {
|
|
307
|
+
if (listenQueuesArg === null) {
|
|
308
|
+
return Array.from(this.wfQueuesByName.values()).filter((q) => q.name !== utils_1.INTERNAL_QUEUE_NAME);
|
|
349
309
|
}
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
310
|
+
const result = [];
|
|
311
|
+
for (const entry of listenQueuesArg) {
|
|
312
|
+
if (typeof entry === 'string') {
|
|
313
|
+
const q = this.wfQueuesByName.get(entry);
|
|
314
|
+
if (q)
|
|
315
|
+
result.push(q);
|
|
356
316
|
}
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
logger.warn(`Exception listing database-backed queues: ${e.message}`);
|
|
360
|
-
}
|
|
361
|
-
if (this.listenQueueNames !== null) {
|
|
362
|
-
for (const name of Array.from(merged.keys())) {
|
|
363
|
-
if (!this.listenQueueNames.has(name))
|
|
364
|
-
merged.delete(name);
|
|
317
|
+
else {
|
|
318
|
+
result.push(entry);
|
|
365
319
|
}
|
|
366
320
|
}
|
|
367
|
-
|
|
368
|
-
logger.info(`Listening to ${merged.size} queues:`);
|
|
369
|
-
for (const q of merged.values()) {
|
|
370
|
-
logQueue(logger, q);
|
|
371
|
-
}
|
|
321
|
+
return result;
|
|
372
322
|
}
|
|
373
|
-
/**
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
323
|
+
/** Begin tracking a queue if it isn't already, scheduling its first poll one interval out. */
|
|
324
|
+
ensureState(queue, now) {
|
|
325
|
+
if (this.states.has(queue.name))
|
|
326
|
+
return;
|
|
327
|
+
const interval = queue.minPollingIntervalMs ?? WFQueueRunner.defaultMinPollingIntervalMs;
|
|
328
|
+
this.states.set(queue.name, { queue, currentPollingMs: interval, nextPollAt: now + interval });
|
|
329
|
+
}
|
|
330
|
+
/** Reconcile DB-backed queues against the queues table in one query: refresh, add, or drop them. */
|
|
331
|
+
async refreshDbQueues(exec, now) {
|
|
379
332
|
let records;
|
|
380
333
|
try {
|
|
381
334
|
records = await exec.systemDatabase.listQueues();
|
|
@@ -384,129 +337,159 @@ class WFQueueRunner {
|
|
|
384
337
|
exec.logger.warn(`Error listing database-backed queues: ${e.message}`);
|
|
385
338
|
return;
|
|
386
339
|
}
|
|
340
|
+
const present = new Set();
|
|
387
341
|
for (const record of records) {
|
|
388
342
|
if (record.name === utils_1.INTERNAL_QUEUE_NAME)
|
|
389
343
|
continue;
|
|
390
344
|
if (this.wfQueuesByName.has(record.name)) {
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
`
|
|
345
|
+
if (!this.conflictWarned.has(record.name)) {
|
|
346
|
+
this.conflictWarned.add(record.name);
|
|
347
|
+
exec.logger.warn(`Database-backed queue '${record.name}' has the same name as an in-memory queue. ` +
|
|
348
|
+
`The in-memory queue's configuration is being used; the database-backed queue is ignored. ` +
|
|
349
|
+
`Rename one of them to resolve the conflict.`);
|
|
350
|
+
}
|
|
394
351
|
continue;
|
|
395
352
|
}
|
|
396
|
-
if (this.runningQueueNames.has(record.name))
|
|
397
|
-
continue;
|
|
398
353
|
if (this.listenQueueNames !== null && !this.listenQueueNames.has(record.name))
|
|
399
354
|
continue;
|
|
400
|
-
|
|
355
|
+
present.add(record.name);
|
|
356
|
+
const existing = this.states.get(record.name);
|
|
357
|
+
if (existing) {
|
|
358
|
+
// Refresh config in place, preserving this queue's polling/backoff state.
|
|
359
|
+
existing.queue = WorkflowQueue._fromRecord(record);
|
|
360
|
+
}
|
|
361
|
+
else {
|
|
362
|
+
this.ensureState(WorkflowQueue._fromRecord(record), now);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
// A database-backed queue whose row is gone stops being dispatched.
|
|
366
|
+
for (const [name, state] of this.states) {
|
|
367
|
+
if (!state.queue.databaseBacked)
|
|
368
|
+
continue;
|
|
369
|
+
if (!present.has(name)) {
|
|
370
|
+
exec.logger.info(`Queue '${name}' has been deleted from the database; no longer dispatching it.`);
|
|
371
|
+
this.states.delete(name);
|
|
372
|
+
}
|
|
401
373
|
}
|
|
402
374
|
}
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
await this.discoverAndLaunchDbQueues(exec);
|
|
375
|
+
/** Log every queue this process will dispatch for, once at startup after discovery. */
|
|
376
|
+
logRunningQueues(exec) {
|
|
377
|
+
const names = Array.from(this.states.keys()).filter((n) => n !== utils_1.INTERNAL_QUEUE_NAME);
|
|
378
|
+
exec.logger.info(`Listening to ${names.length} queues:`);
|
|
379
|
+
for (const name of names) {
|
|
380
|
+
logQueue(exec.logger, this.states.get(name).queue);
|
|
410
381
|
}
|
|
411
382
|
}
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
const maxPollingMs = WFQueueRunner.defaultMaxPollingIntervalMs;
|
|
415
|
-
let currentPollingMs = queue.minPollingIntervalMs ?? WFQueueRunner.defaultMinPollingIntervalMs;
|
|
383
|
+
/** The single dispatcher loop: reconcile queues, transition delayed workflows once, poll due queues sequentially. */
|
|
384
|
+
async schedulerLoop(exec, startNow) {
|
|
416
385
|
const signal = this.abortController.signal;
|
|
386
|
+
// Discovery already ran during setup; defer the next reconcile a full interval.
|
|
387
|
+
let lastReconcileAt = startNow;
|
|
388
|
+
// Global op: run on a fixed cadence, not once per wake (destaggered wakeups would push it to ~N/sec).
|
|
389
|
+
let lastTransitionAt = 0;
|
|
417
390
|
while (this.isRunning) {
|
|
418
|
-
|
|
419
|
-
//
|
|
420
|
-
|
|
421
|
-
|
|
391
|
+
const now = Date.now();
|
|
392
|
+
// Reconcile DB-backed queues with a single query, independent of queue count.
|
|
393
|
+
if (now - lastReconcileAt >= WFQueueRunner.reconcileIntervalMs) {
|
|
394
|
+
await this.refreshDbQueues(exec, now);
|
|
395
|
+
lastReconcileAt = now;
|
|
396
|
+
}
|
|
397
|
+
// Transition delayed workflows at most once per interval — it is global, so one call covers every queue.
|
|
398
|
+
if (now - lastTransitionAt >= WFQueueRunner.transitionIntervalMs) {
|
|
422
399
|
try {
|
|
423
|
-
|
|
424
|
-
if (record === null) {
|
|
425
|
-
exec.logger.info(`Queue '${queue.name}' has been deleted from the database; stopping its worker.`);
|
|
426
|
-
return;
|
|
427
|
-
}
|
|
428
|
-
queue = WorkflowQueue._fromRecord(record);
|
|
400
|
+
await exec.systemDatabase.transitionDelayedWorkflows();
|
|
429
401
|
}
|
|
430
402
|
catch (e) {
|
|
431
|
-
exec.logger.warn(`Error
|
|
403
|
+
exec.logger.warn(`Error transitioning delayed workflows: ${e.message}`);
|
|
432
404
|
}
|
|
405
|
+
lastTransitionAt = now;
|
|
406
|
+
}
|
|
407
|
+
// Collect the queues due to poll this tick and dispatch them sequentially.
|
|
408
|
+
const due = [];
|
|
409
|
+
for (const state of this.states.values()) {
|
|
410
|
+
if (now >= state.nextPollAt)
|
|
411
|
+
due.push(state);
|
|
412
|
+
}
|
|
413
|
+
for (const state of due) {
|
|
414
|
+
if (!this.isRunning)
|
|
415
|
+
break;
|
|
416
|
+
const contentionDetected = await this.pollQueue(exec, state.queue);
|
|
417
|
+
this.adjustInterval(exec, state, contentionDetected);
|
|
433
418
|
}
|
|
434
|
-
// Recompute min/max each iteration so a setMinPollingIntervalMs takes
|
|
435
|
-
// effect on the very next tick. Clamp the running value into the new
|
|
436
|
-
// range to avoid sleeping longer than the configured maximum after a
|
|
437
|
-
// shrink, or shorter than the minimum after a grow.
|
|
438
|
-
const minPollingMs = queue.minPollingIntervalMs ?? WFQueueRunner.defaultMinPollingIntervalMs;
|
|
439
|
-
currentPollingMs = Math.max(minPollingMs, Math.min(currentPollingMs, maxPollingMs));
|
|
440
|
-
// Sleep with jitter, returning early on the stop signal
|
|
441
|
-
const jitter = this.jitterMin + Math.random() * (this.jitterMax - this.jitterMin);
|
|
442
|
-
const sleepMs = currentPollingMs * jitter;
|
|
443
|
-
await (0, utils_1.interruptibleSleep)(sleepMs, signal);
|
|
444
419
|
if (!this.isRunning)
|
|
445
420
|
break;
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
421
|
+
// Sleep until the earliest of the next scheduled poll, reconcile, or transition tick.
|
|
422
|
+
let wake = Math.min(lastReconcileAt + WFQueueRunner.reconcileIntervalMs, lastTransitionAt + WFQueueRunner.transitionIntervalMs);
|
|
423
|
+
for (const state of this.states.values()) {
|
|
424
|
+
if (state.nextPollAt < wake)
|
|
425
|
+
wake = state.nextPollAt;
|
|
426
|
+
}
|
|
427
|
+
const sleepMs = Math.max(0, wake - Date.now());
|
|
428
|
+
await (0, utils_1.interruptibleSleep)(sleepMs, signal);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
/** Poll one queue once, starting ready workflows; returns true if DB contention was detected. */
|
|
432
|
+
async pollQueue(exec, queue) {
|
|
433
|
+
let contentionDetected = false;
|
|
434
|
+
// Helper function that starts dequeued workflows
|
|
435
|
+
const dispatch = async (wfids) => {
|
|
436
|
+
if (wfids.length > 0) {
|
|
437
|
+
await (0, debugpoint_1.debugTriggerPoint)(debugpoint_1.DEBUG_TRIGGER_WORKFLOW_QUEUE_START);
|
|
438
|
+
}
|
|
439
|
+
for (const wfid of wfids) {
|
|
449
440
|
try {
|
|
450
|
-
await exec.
|
|
441
|
+
await exec.executeWorkflowId(wfid, { isQueueDispatch: true });
|
|
451
442
|
}
|
|
452
443
|
catch (e) {
|
|
453
|
-
exec.logger.warn(`
|
|
454
|
-
}
|
|
455
|
-
// Helper function that starts dequeued workflows
|
|
456
|
-
const dispatch = async (wfids) => {
|
|
457
|
-
if (wfids.length > 0) {
|
|
458
|
-
await (0, debugpoint_1.debugTriggerPoint)(debugpoint_1.DEBUG_TRIGGER_WORKFLOW_QUEUE_START);
|
|
459
|
-
}
|
|
460
|
-
for (const wfid of wfids) {
|
|
461
|
-
try {
|
|
462
|
-
await exec.executeWorkflowId(wfid, { isQueueDispatch: true });
|
|
463
|
-
}
|
|
464
|
-
catch (e) {
|
|
465
|
-
exec.logger.warn(`Could not execute workflow with id ${wfid}: ${e.message}`);
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
};
|
|
469
|
-
// Dequeue workflows for this queue. If the queue is partitioned, successively dequeue and start
|
|
470
|
-
// workflows from each active partition.
|
|
471
|
-
try {
|
|
472
|
-
if (queue.partitionQueue) {
|
|
473
|
-
const partitionKeys = await exec.systemDatabase.getQueuePartitions(queue.name);
|
|
474
|
-
for (const partitionKey of partitionKeys) {
|
|
475
|
-
const partitionWfids = await exec.systemDatabase.findAndMarkStartableWorkflows(queue, exec.executorID, utils_1.globalParams.appVersion, partitionKey);
|
|
476
|
-
await dispatch(partitionWfids);
|
|
477
|
-
await (0, debugpoint_1.debugTriggerPoint)(debugpoint_1.DEBUG_TRIGGER_BETWEEN_PARTITION_DISPATCHES);
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
else {
|
|
481
|
-
const wfids = await exec.systemDatabase.findAndMarkStartableWorkflows(queue, exec.executorID, utils_1.globalParams.appVersion, undefined);
|
|
482
|
-
await dispatch(wfids);
|
|
483
|
-
}
|
|
444
|
+
exec.logger.warn(`Could not execute workflow with id ${wfid}: ${e.message}`);
|
|
484
445
|
}
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
446
|
+
}
|
|
447
|
+
};
|
|
448
|
+
// Dequeue workflows for this queue. If the queue is partitioned, successively dequeue and start
|
|
449
|
+
// workflows from each active partition.
|
|
450
|
+
try {
|
|
451
|
+
if (queue.partitionQueue) {
|
|
452
|
+
const partitionKeys = await exec.systemDatabase.getQueuePartitions(queue.name);
|
|
453
|
+
for (const partitionKey of partitionKeys) {
|
|
454
|
+
const partitionWfids = await exec.systemDatabase.findAndMarkStartableWorkflows(queue, exec.executorID, utils_1.globalParams.appVersion, partitionKey);
|
|
455
|
+
await dispatch(partitionWfids);
|
|
456
|
+
await (0, debugpoint_1.debugTriggerPoint)(debugpoint_1.DEBUG_TRIGGER_BETWEEN_PARTITION_DISPATCHES);
|
|
496
457
|
}
|
|
497
458
|
}
|
|
498
|
-
|
|
499
|
-
exec.
|
|
459
|
+
else {
|
|
460
|
+
const wfids = await exec.systemDatabase.findAndMarkStartableWorkflows(queue, exec.executorID, utils_1.globalParams.appVersion, undefined);
|
|
461
|
+
await dispatch(wfids);
|
|
500
462
|
}
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
463
|
+
}
|
|
464
|
+
catch (e) {
|
|
465
|
+
const err = e;
|
|
466
|
+
// Handle serialization errors and lock contention with backoff
|
|
467
|
+
if ('code' in err && (err.code === '40001' || err.code === '55P03')) {
|
|
468
|
+
// 40001: serialization_failure, 55P03: lock_not_available
|
|
469
|
+
contentionDetected = true;
|
|
470
|
+
exec.logger.warn(`Contention detected in queue ${queue.name}.`);
|
|
505
471
|
}
|
|
506
472
|
else {
|
|
507
|
-
|
|
473
|
+
exec.logger.warn(`Error getting startable workflows for queue ${queue.name}: ${err.message}`);
|
|
508
474
|
}
|
|
509
475
|
}
|
|
476
|
+
return contentionDetected;
|
|
477
|
+
}
|
|
478
|
+
/** After a poll, grow the interval on contention or shrink it toward the minimum, then schedule the next poll with jitter. */
|
|
479
|
+
adjustInterval(exec, state, contentionDetected) {
|
|
480
|
+
const minPollingMs = state.queue.minPollingIntervalMs ?? WFQueueRunner.defaultMinPollingIntervalMs;
|
|
481
|
+
const maxPollingMs = WFQueueRunner.defaultMaxPollingIntervalMs;
|
|
482
|
+
if (contentionDetected) {
|
|
483
|
+
state.currentPollingMs = Math.min(maxPollingMs, state.currentPollingMs * this.backoffFactor);
|
|
484
|
+
exec.logger.warn(`Increasing polling interval for queue ${state.queue.name} to ${(state.currentPollingMs / 1000).toFixed(2)}s due to contention.`);
|
|
485
|
+
}
|
|
486
|
+
else {
|
|
487
|
+
state.currentPollingMs = Math.max(minPollingMs, state.currentPollingMs * this.scalebackFactor);
|
|
488
|
+
}
|
|
489
|
+
// Clamp into the current [min, max] range in case config changed under us.
|
|
490
|
+
state.currentPollingMs = Math.max(minPollingMs, Math.min(state.currentPollingMs, maxPollingMs));
|
|
491
|
+
const jitter = this.jitterMin + Math.random() * (this.jitterMax - this.jitterMin);
|
|
492
|
+
state.nextPollAt = Date.now() + state.currentPollingMs * jitter;
|
|
510
493
|
}
|
|
511
494
|
}
|
|
512
495
|
exports.wfQueueRunner = new WFQueueRunner();
|
package/dist/src/wfqueue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wfqueue.js","sourceRoot":"","sources":["../../src/wfqueue.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wfqueue.js","sourceRoot":"","sources":["../../src/wfqueue.ts"],"names":[],"mappings":"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"}
|