@nxtedition/scheduler 3.1.0 → 3.1.2

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.
@@ -4,7 +4,7 @@ export declare class Scheduler extends Queue {
4
4
  run<T, U>(fn: (opaque: U) => Promise<T> | T, priority: Priority, opaque: U): Promise<T>;
5
5
  acquire(fn: () => unknown, priority?: Priority): void;
6
6
  acquire<U>(fn: (opaque: U) => unknown, priority: Priority, opaque: U): void;
7
- release(): void;
7
+ release: () => void;
8
8
  get stats(): {
9
9
  deferred: number;
10
10
  running: number;
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAA;AAI3E,qBAAa,SAAU,SAAQ,KAAK;IAClC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;IACjE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAwBvF,OAAO,CAAC,EAAE,EAAE,MAAM,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI;IACrD,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI;IAkC3E,OAAO;IA6DP,IAAI,KAAK;;;;;;;MAOR;CACF"}
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAA;AAI3E,qBAAa,SAAU,SAAQ,KAAK;IAClC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC;IACjE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA4BvF,OAAO,CAAC,EAAE,EAAE,MAAM,OAAO,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI;IACrD,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI;IAkC3E,OAAO,aA2DN;IAED,IAAI,KAAK;;;;;;;MAOR;CACF"}
package/lib/scheduler.js CHANGED
@@ -3,15 +3,20 @@ const RUNNING_INDEX = 0;
3
3
  export class Scheduler extends Queue {
4
4
  run(fn, priority = Queue.NORMAL, opaque) {
5
5
  return new Promise((resolve, reject) => {
6
- this.acquire(async (o) => {
6
+ this.acquire((o) => {
7
7
  try {
8
- resolve(await fn(o));
8
+ const result = fn(o);
9
+ if (result && typeof result.then === 'function') {
10
+ ;
11
+ result.then(resolve, reject).then(this.release);
12
+ }
13
+ else {
14
+ resolve(result);
15
+ this.release();
16
+ }
9
17
  }
10
18
  catch (err) {
11
- // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
12
- reject(err);
13
- }
14
- finally {
19
+ reject(err); // eslint-disable-line @typescript-eslint/prefer-promise-reject-errors
15
20
  this.release();
16
21
  }
17
22
  }, priority, opaque);
@@ -36,7 +41,7 @@ export class Scheduler extends Queue {
36
41
  return;
37
42
  }
38
43
  }
39
- else if ((this.running < 1 && this.concurrency > 0) || this.running < this.concurrency) {
44
+ else if (this.running < this.concurrency) {
40
45
  this.running += 1;
41
46
  fn(opaque);
42
47
  return;
@@ -46,7 +51,7 @@ export class Scheduler extends Queue {
46
51
  this.deferred += 1;
47
52
  this.pending += 1;
48
53
  }
49
- release() {
54
+ release = () => {
50
55
  let running;
51
56
  if (this.running > 0) {
52
57
  running = this.stateView
@@ -100,7 +105,7 @@ export class Scheduler extends Queue {
100
105
  finally {
101
106
  this.releasing = false;
102
107
  }
103
- }
108
+ };
104
109
  get stats() {
105
110
  return {
106
111
  deferred: this.deferred,
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
package/lib/throttle.d.ts CHANGED
@@ -6,6 +6,7 @@ export declare class Throttle extends Queue {
6
6
  bytesPerSecond?: number;
7
7
  });
8
8
  static makeSharedState(bytesPerSecond: number): SharedArrayBuffer;
9
+ [Symbol.dispose](): void;
9
10
  stream(priority?: Priority): Transform;
10
11
  acquire(fn: () => unknown, bytes: number, priority?: Priority): boolean;
11
12
  get stats(): {
@@ -15,6 +16,5 @@ export declare class Throttle extends Queue {
15
16
  count: number;
16
17
  }[];
17
18
  };
18
- refill(): void;
19
19
  }
20
20
  //# sourceMappingURL=throttle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../src/throttle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAA4B,KAAK,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAA;AAI3E,qBAAa,QAAS,SAAQ,KAAK;;gBAMrB,IAAI,EAAE,iBAAiB,GAAG;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE;IAIjE,MAAM,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM;IAI7C,MAAM,CAAC,QAAQ,GAAE,QAAuB;IAcxC,OAAO,CAAC,EAAE,EAAE,MAAM,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAuB,GAAG,OAAO;IA2BrF,IAAI,KAAK;;;;;;MAMR;IAcD,MAAM;CAqDP"}
1
+ {"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../src/throttle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAA4B,KAAK,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAA;AAK3E,qBAAa,QAAS,SAAQ,KAAK;;gBAOrB,IAAI,EAAE,iBAAiB,GAAG;QAAE,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE;IAMjE,MAAM,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM;IAI7C,CAAC,MAAM,CAAC,OAAO,CAAC;IAShB,MAAM,CAAC,QAAQ,GAAE,QAAuB;IAQxC,OAAO,CAAC,EAAE,EAAE,MAAM,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAuB,GAAG,OAAO;IA+BrF,IAAI,KAAK;;;;;;MAMR;CAwEF"}
package/lib/throttle.js CHANGED
@@ -1,32 +1,50 @@
1
1
  import { Transform } from 'node:stream';
2
2
  import { FastQueue, parsePriority, Queue } from "./queue.js";
3
+ import { isMainThread } from 'node:worker_threads';
3
4
  const TOKENS_INDEX = 2;
4
5
  export class Throttle extends Queue {
5
6
  #singleThreadTokens = 0;
6
- // Set last refill time to zero will mean that we start with a full bucket
7
- #lastRefillTime = 0;
8
- #drainRunning = false;
7
+ // Set last refill time to -Infinity so first refill() always fills a full bucket.
8
+ #lastRefillTime = -Infinity;
9
+ #refillTimer = null;
10
+ #drainTimer = null;
9
11
  constructor(opts) {
10
12
  super(opts instanceof SharedArrayBuffer ? opts : { concurrency: opts?.bytesPerSecond });
13
+ this.#refillTimer = !this.stateView || isMainThread ? setInterval(() => this.#refill(), 100).unref() : null;
14
+ this.#drainTimer = this.stateView && !isMainThread ? setInterval(() => this.#drain(), 100).unref() : null;
11
15
  }
12
16
  static makeSharedState(bytesPerSecond) {
13
17
  return super.makeSharedState(bytesPerSecond);
14
18
  }
19
+ [Symbol.dispose]() {
20
+ if (this.#refillTimer) {
21
+ clearInterval(this.#refillTimer);
22
+ }
23
+ if (this.#drainTimer) {
24
+ clearInterval(this.#drainTimer);
25
+ }
26
+ }
15
27
  stream(priority = Queue.NORMAL) {
16
28
  return new Transform({
17
29
  transform: (chunk, _encoding, callback) => {
18
- this.acquire(() => {
19
- callback(null, chunk);
20
- }, chunk.length, priority);
30
+ this.acquire(() => callback(null, chunk), chunk.length, priority);
21
31
  },
22
32
  });
23
33
  }
24
34
  acquire(fn, bytes, priority = Queue.NORMAL) {
35
+ if ((!this.stateView || isMainThread) && this.#tokens < bytes) {
36
+ this.#refill();
37
+ }
25
38
  // There is a possiblity that this check passes for two threads, but should only have passed for one of them.
26
39
  // Given that the concurrency limit is a soft limit, this is not a problem and will just mean that we might briefly exceed the concurrency limit until the next refill.
27
40
  if (this.pending === 0 && this.#tokens >= bytes) {
28
41
  // Nothing in the queue, and enough tokens to run immediately.
29
- this.#tokens -= bytes;
42
+ if (this.stateView) {
43
+ Atomics.sub(this.stateView, TOKENS_INDEX, bytes);
44
+ }
45
+ else {
46
+ this.#singleThreadTokens -= bytes;
47
+ }
30
48
  fn();
31
49
  return true;
32
50
  }
@@ -36,10 +54,6 @@ export class Throttle extends Queue {
36
54
  this.deferred += 1;
37
55
  queue.arr.push(fn, bytes);
38
56
  queue.cnt += 1;
39
- if (!this.#drainRunning) {
40
- this.#drainRunning = true;
41
- setImmediate(() => this.#drain());
42
- }
43
57
  return false;
44
58
  }
45
59
  get stats() {
@@ -52,15 +66,7 @@ export class Throttle extends Queue {
52
66
  get #tokens() {
53
67
  return this.stateView ? this.stateView[TOKENS_INDEX] : this.#singleThreadTokens;
54
68
  }
55
- set #tokens(value) {
56
- if (this.stateView) {
57
- Atomics.store(this.stateView, TOKENS_INDEX, value);
58
- }
59
- else {
60
- this.#singleThreadTokens = value;
61
- }
62
- }
63
- refill() {
69
+ #refill() {
64
70
  const currentToken = this.#tokens;
65
71
  if (currentToken >= this.concurrency) {
66
72
  // We are already at or above capacity, so just update the last refill time and return.
@@ -69,8 +75,17 @@ export class Throttle extends Queue {
69
75
  }
70
76
  const now = performance.now();
71
77
  const elapsed = (now - this.#lastRefillTime) / 1000;
72
- this.#tokens = Math.min(this.concurrency, currentToken + elapsed * this.concurrency);
78
+ const newTokens = Math.min(this.concurrency - currentToken, elapsed * this.concurrency);
79
+ if (this.stateView) {
80
+ Atomics.add(this.stateView, TOKENS_INDEX, newTokens | 0);
81
+ }
82
+ else {
83
+ this.#singleThreadTokens += newTokens;
84
+ }
73
85
  this.#lastRefillTime = now;
86
+ if (!this.stateView || isMainThread) {
87
+ this.#drain();
88
+ }
74
89
  }
75
90
  #drain() {
76
91
  while (this.pending > 0) {
@@ -81,15 +96,19 @@ export class Throttle extends Queue {
81
96
  const bytes = queue.arr[queue.idx + 1];
82
97
  const currentTokens = this.#tokens;
83
98
  if (currentTokens < bytes) {
84
- setTimeout(() => this.#drain(), 10);
85
- // return to avoid setting drainRunning to false as we will continue draining after the timeout
99
+ this.#drainTimer?.refresh();
86
100
  return;
87
101
  }
88
102
  const fn = queue.arr[queue.idx];
89
103
  queue.arr[queue.idx++] = null;
90
104
  queue.arr[queue.idx++] = null;
91
105
  queue.cnt -= 1;
92
- this.#tokens -= bytes;
106
+ if (this.stateView) {
107
+ Atomics.sub(this.stateView, TOKENS_INDEX, bytes);
108
+ }
109
+ else {
110
+ this.#singleThreadTokens -= bytes;
111
+ }
93
112
  this.pending -= 1;
94
113
  if (queue.cnt === 0) {
95
114
  queue.idx = 0;
@@ -101,7 +120,6 @@ export class Throttle extends Queue {
101
120
  }
102
121
  fn();
103
122
  }
104
- this.#drainRunning = false;
105
123
  }
106
124
  }
107
125
  //# sourceMappingURL=throttle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"throttle.js","sourceRoot":"","sources":["../src/throttle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"throttle.js","sourceRoot":"","sources":["../src/throttle.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nxtedition/scheduler",
3
- "version": "3.1.0",
3
+ "version": "3.1.2",
4
4
  "type": "module",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -31,5 +31,5 @@
31
31
  "rimraf": "^6.1.3",
32
32
  "typescript": "^5.9.3"
33
33
  },
34
- "gitHead": "e9a232c708d1b9fbda3a040be054d79dfb64a26b"
34
+ "gitHead": "15cf2221f806675de2c224219a7f11ffc17ffeb3"
35
35
  }