bunqueue 2.6.62 → 2.6.63
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/client/flow.d.ts.map +1 -1
- package/dist/client/flow.js +23 -12
- package/dist/client/flow.js.map +1 -1
- package/dist/client/worker/workerRateLimiter.d.ts +11 -0
- package/dist/client/worker/workerRateLimiter.d.ts.map +1 -1
- package/dist/client/worker/workerRateLimiter.js +32 -16
- package/dist/client/worker/workerRateLimiter.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/client/flow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EACV,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,OAAO,EACP,OAAO,EACP,WAAW,EACZ,MAAM,aAAa,CAAC;AAUrB,YAAY,EACV,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,OAAO,EACP,OAAO,EACP,WAAW,GACZ,MAAM,aAAa,CAAC;AAIrB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2B;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;gBAE5B,IAAI,GAAE,mBAAwB;IAqC1C,4CAA4C;IAC5C,OAAO,KAAK,OAAO,GAElB;IAED,+DAA+D;IAC/D,KAAK,IAAI,IAAI;IAQb,4EAA4E;IAC5E,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,mEAAmE;IAC7D,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IASrC,qFAAqF;IAC/E,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAI7D,iDAAiD;IAC3C,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/client/flow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EACV,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,OAAO,EACP,OAAO,EACP,WAAW,EACZ,MAAM,aAAa,CAAC;AAUrB,YAAY,EACV,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,OAAO,EACP,OAAO,EACP,WAAW,GACZ,MAAM,aAAa,CAAC;AAIrB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2B;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;gBAE5B,IAAI,GAAE,mBAAwB;IAqC1C,4CAA4C;IAC5C,OAAO,KAAK,OAAO,GAElB;IAED,+DAA+D;IAC/D,KAAK,IAAI,IAAI;IAQb,4EAA4E;IAC5E,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,mEAAmE;IAC7D,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IASrC,qFAAqF;IAC/E,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAI7D,iDAAiD;IAC3C,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAItE,kEAAkE;IAC5D,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAYzE,8EAA8E;IACxE,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IA2BtE,sDAAsD;IAChD,WAAW,CAAC,CAAC,GAAG,OAAO,EAC3B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,EACvB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GACjB,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IA+CtD,0DAA0D;IACpD,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAWlE;;;OAGG;IAEH,eAAe,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAK7D;;;OAGG;IACH,gBAAgB,CAAC,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAelE,iFAAiF;IACjF,OAAO,CAAC,cAAc;YAwBR,eAAe;YAWf,UAAU;YAcV,YAAY;YA6BZ,mBAAmB;YAyCnB,WAAW;YA+CX,WAAW;CAoB1B"}
|
package/dist/client/flow.js
CHANGED
|
@@ -107,11 +107,7 @@ export class FlowProducer {
|
|
|
107
107
|
}
|
|
108
108
|
/** Add multiple flows (BullMQ v5 compatible). */
|
|
109
109
|
async addBulk(flows) {
|
|
110
|
-
|
|
111
|
-
for (const flow of flows) {
|
|
112
|
-
results.push(await this.add(flow));
|
|
113
|
-
}
|
|
114
|
-
return results;
|
|
110
|
+
return Promise.all(flows.map((flow) => this.add(flow)));
|
|
115
111
|
}
|
|
116
112
|
/** Get a flow tree starting from a job (BullMQ v5 compatible). */
|
|
117
113
|
async getFlow(opts) {
|
|
@@ -148,10 +144,25 @@ export class FlowProducer {
|
|
|
148
144
|
async addBulkThen(parallel, final) {
|
|
149
145
|
const parallelIds = [];
|
|
150
146
|
try {
|
|
151
|
-
|
|
147
|
+
// Push parallel jobs concurrently — they are independent by design
|
|
148
|
+
const results = await Promise.allSettled(parallel.map(async (step) => {
|
|
152
149
|
const data = { name: step.name, ...step.data };
|
|
153
|
-
|
|
154
|
-
|
|
150
|
+
return pushJob(this.pushCtx, step.queueName, data, step.opts ?? {});
|
|
151
|
+
}));
|
|
152
|
+
// Collect successful IDs and check for failures
|
|
153
|
+
const errors = [];
|
|
154
|
+
for (const r of results) {
|
|
155
|
+
if (r.status === 'fulfilled') {
|
|
156
|
+
parallelIds.push(r.value);
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
errors.push(r.reason);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
if (errors.length > 0) {
|
|
163
|
+
// Clean up successfully created jobs before throwing
|
|
164
|
+
await cleanupJobs(this.pushCtx, parallelIds);
|
|
165
|
+
throw errors[0] instanceof Error ? errors[0] : new Error(String(errors[0]));
|
|
155
166
|
}
|
|
156
167
|
const finalData = {
|
|
157
168
|
name: final.name,
|
|
@@ -291,8 +302,9 @@ export class FlowProducer {
|
|
|
291
302
|
const childIds = [];
|
|
292
303
|
if (node.children && node.children.length > 0) {
|
|
293
304
|
const tempParentRef = { id: 'pending', queue: node.queueName };
|
|
294
|
-
|
|
295
|
-
|
|
305
|
+
// Siblings are independent — create them concurrently
|
|
306
|
+
const results = await Promise.all(node.children.map((child) => this.addFlowNode(child, tempParentRef)));
|
|
307
|
+
for (const childNode of results) {
|
|
296
308
|
childNodes.push(childNode);
|
|
297
309
|
childIds.push(childNode.job.id);
|
|
298
310
|
}
|
|
@@ -322,8 +334,7 @@ export class FlowProducer {
|
|
|
322
334
|
const id = await pushJob(this.pushCtx, step.queueName, data, step.opts ?? {}, parentId ? [parentId] : undefined);
|
|
323
335
|
jobIds.push(id);
|
|
324
336
|
if (step.children) {
|
|
325
|
-
|
|
326
|
-
await this.addTreeNode(child, id, jobIds);
|
|
337
|
+
await Promise.all(step.children.map((child) => this.addTreeNode(child, id, jobIds)));
|
|
327
338
|
}
|
|
328
339
|
return id;
|
|
329
340
|
}
|
package/dist/client/flow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/client/flow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/client/flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WorkerRateLimiter - Rate limiting for worker job processing
|
|
3
3
|
* BullMQ v5 compatible sliding window rate limiter
|
|
4
|
+
*
|
|
5
|
+
* Uses a head-pointer approach instead of Array.filter() for O(1) amortized
|
|
6
|
+
* token expiration. Tokens are always pushed in chronological order, so
|
|
7
|
+
* expired tokens are always at the front — we just advance the head pointer.
|
|
4
8
|
*/
|
|
5
9
|
import type { RateLimiterOptions } from '../types';
|
|
6
10
|
export declare class WorkerRateLimiter {
|
|
7
11
|
private readonly limiter;
|
|
8
12
|
private limiterTokens;
|
|
13
|
+
private head;
|
|
9
14
|
private rateLimitExpiration;
|
|
10
15
|
constructor(limiter: RateLimiterOptions | null);
|
|
11
16
|
/**
|
|
12
17
|
* Check if rate limiter allows processing another job.
|
|
13
18
|
* Returns true if we can process, false if rate limited.
|
|
19
|
+
* O(1) amortized — advances head pointer past expired tokens.
|
|
14
20
|
*/
|
|
15
21
|
canProcessWithinLimit(): boolean;
|
|
16
22
|
/** Record a job completion for rate limiting. */
|
|
@@ -18,6 +24,7 @@ export declare class WorkerRateLimiter {
|
|
|
18
24
|
/**
|
|
19
25
|
* Get time until rate limiter allows next job (ms).
|
|
20
26
|
* Returns 0 if not rate limited.
|
|
27
|
+
* O(1) — oldest active token is at this.limiterTokens[this.head].
|
|
21
28
|
*/
|
|
22
29
|
getTimeUntilNextSlot(): number;
|
|
23
30
|
/** Get rate limiter info (for debugging/monitoring). */
|
|
@@ -33,5 +40,9 @@ export declare class WorkerRateLimiter {
|
|
|
33
40
|
rateLimit(expireTimeMs: number): void;
|
|
34
41
|
/** Check if worker is currently rate limited. */
|
|
35
42
|
isRateLimited(): boolean;
|
|
43
|
+
/** Number of active (non-expired) tokens. */
|
|
44
|
+
private activeCount;
|
|
45
|
+
/** Advance head pointer past expired tokens. Compact when head > half the array. */
|
|
46
|
+
private evictExpired;
|
|
36
47
|
}
|
|
37
48
|
//# sourceMappingURL=workerRateLimiter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerRateLimiter.d.ts","sourceRoot":"","sources":["../../../src/client/worker/workerRateLimiter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"workerRateLimiter.d.ts","sourceRoot":"","sources":["../../../src/client/worker/workerRateLimiter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,qBAAa,iBAAiB;IAKhB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJpC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,mBAAmB,CAAK;gBAEH,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAE/D;;;;OAIG;IACH,qBAAqB,IAAI,OAAO;IAShC,iDAAiD;IACjD,mBAAmB,IAAI,IAAI;IAK3B;;;;OAIG;IACH,oBAAoB,IAAI,MAAM;IAgB9B,wDAAwD;IACxD,kBAAkB,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAa/E;;;OAGG;IACH,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAarC,iDAAiD;IACjD,aAAa,IAAI,OAAO;IAIxB,6CAA6C;IAC7C,OAAO,CAAC,WAAW;IAInB,oFAAoF;IACpF,OAAO,CAAC,YAAY;CAWrB"}
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WorkerRateLimiter - Rate limiting for worker job processing
|
|
3
3
|
* BullMQ v5 compatible sliding window rate limiter
|
|
4
|
+
*
|
|
5
|
+
* Uses a head-pointer approach instead of Array.filter() for O(1) amortized
|
|
6
|
+
* token expiration. Tokens are always pushed in chronological order, so
|
|
7
|
+
* expired tokens are always at the front — we just advance the head pointer.
|
|
4
8
|
*/
|
|
5
9
|
export class WorkerRateLimiter {
|
|
6
10
|
limiter;
|
|
7
11
|
limiterTokens = [];
|
|
12
|
+
head = 0;
|
|
8
13
|
rateLimitExpiration = 0;
|
|
9
14
|
constructor(limiter) {
|
|
10
15
|
this.limiter = limiter;
|
|
@@ -12,16 +17,14 @@ export class WorkerRateLimiter {
|
|
|
12
17
|
/**
|
|
13
18
|
* Check if rate limiter allows processing another job.
|
|
14
19
|
* Returns true if we can process, false if rate limited.
|
|
20
|
+
* O(1) amortized — advances head pointer past expired tokens.
|
|
15
21
|
*/
|
|
16
22
|
canProcessWithinLimit() {
|
|
17
23
|
if (!this.limiter)
|
|
18
24
|
return true;
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
this.limiterTokens = this.limiterTokens.filter((t) => t > windowStart);
|
|
23
|
-
// Check if we have capacity
|
|
24
|
-
return this.limiterTokens.length < this.limiter.max;
|
|
25
|
+
const windowStart = Date.now() - this.limiter.duration;
|
|
26
|
+
this.evictExpired(windowStart);
|
|
27
|
+
return this.activeCount() < this.limiter.max;
|
|
25
28
|
}
|
|
26
29
|
/** Record a job completion for rate limiting. */
|
|
27
30
|
recordJobForLimiter() {
|
|
@@ -32,30 +35,29 @@ export class WorkerRateLimiter {
|
|
|
32
35
|
/**
|
|
33
36
|
* Get time until rate limiter allows next job (ms).
|
|
34
37
|
* Returns 0 if not rate limited.
|
|
38
|
+
* O(1) — oldest active token is at this.limiterTokens[this.head].
|
|
35
39
|
*/
|
|
36
40
|
getTimeUntilNextSlot() {
|
|
37
41
|
if (!this.limiter)
|
|
38
42
|
return 0;
|
|
39
43
|
const now = Date.now();
|
|
40
44
|
const windowStart = now - this.limiter.duration;
|
|
41
|
-
|
|
42
|
-
this.
|
|
43
|
-
if (this.limiterTokens.length < this.limiter.max) {
|
|
45
|
+
this.evictExpired(windowStart);
|
|
46
|
+
if (this.activeCount() < this.limiter.max) {
|
|
44
47
|
return 0;
|
|
45
48
|
}
|
|
46
|
-
//
|
|
47
|
-
const oldestToken =
|
|
49
|
+
// Oldest active token is at head — no need for Math.min(...spread)
|
|
50
|
+
const oldestToken = this.limiterTokens[this.head];
|
|
48
51
|
return oldestToken + this.limiter.duration - now;
|
|
49
52
|
}
|
|
50
53
|
/** Get rate limiter info (for debugging/monitoring). */
|
|
51
54
|
getRateLimiterInfo() {
|
|
52
55
|
if (!this.limiter)
|
|
53
56
|
return null;
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
const currentTokens = this.limiterTokens.filter((t) => t > windowStart).length;
|
|
57
|
+
const windowStart = Date.now() - this.limiter.duration;
|
|
58
|
+
this.evictExpired(windowStart);
|
|
57
59
|
return {
|
|
58
|
-
current:
|
|
60
|
+
current: this.activeCount(),
|
|
59
61
|
max: this.limiter.max,
|
|
60
62
|
duration: this.limiter.duration,
|
|
61
63
|
};
|
|
@@ -67,7 +69,6 @@ export class WorkerRateLimiter {
|
|
|
67
69
|
rateLimit(expireTimeMs) {
|
|
68
70
|
if (expireTimeMs <= 0)
|
|
69
71
|
return;
|
|
70
|
-
// Fill rate limiter tokens to block processing
|
|
71
72
|
if (this.limiter) {
|
|
72
73
|
const now = Date.now();
|
|
73
74
|
for (let i = 0; i < this.limiter.max; i++) {
|
|
@@ -80,5 +81,20 @@ export class WorkerRateLimiter {
|
|
|
80
81
|
isRateLimited() {
|
|
81
82
|
return Date.now() < this.rateLimitExpiration;
|
|
82
83
|
}
|
|
84
|
+
/** Number of active (non-expired) tokens. */
|
|
85
|
+
activeCount() {
|
|
86
|
+
return this.limiterTokens.length - this.head;
|
|
87
|
+
}
|
|
88
|
+
/** Advance head pointer past expired tokens. Compact when head > half the array. */
|
|
89
|
+
evictExpired(windowStart) {
|
|
90
|
+
while (this.head < this.limiterTokens.length && this.limiterTokens[this.head] <= windowStart) {
|
|
91
|
+
this.head++;
|
|
92
|
+
}
|
|
93
|
+
// Compact: reclaim memory when more than half the array is dead space
|
|
94
|
+
if (this.head > 0 && this.head > this.limiterTokens.length / 2) {
|
|
95
|
+
this.limiterTokens = this.limiterTokens.slice(this.head);
|
|
96
|
+
this.head = 0;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
83
99
|
}
|
|
84
100
|
//# sourceMappingURL=workerRateLimiter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerRateLimiter.js","sourceRoot":"","sources":["../../../src/client/worker/workerRateLimiter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"workerRateLimiter.js","sourceRoot":"","sources":["../../../src/client/worker/workerRateLimiter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bunqueue",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.63",
|
|
4
4
|
"description": "High-performance job queue for Bun & AI agents. SQLite persistence, cron scheduling, priorities, retries, DLQ, webhooks, native MCP server. Zero external dependencies.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/main.js",
|