@rotorsoft/act 1.32.18 → 1.32.19
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/.tsbuildinfo +1 -1
- package/dist/@types/builders/reaction-builder.d.ts.map +1 -1
- package/dist/@types/internal/config.d.ts +6 -0
- package/dist/@types/internal/config.d.ts.map +1 -1
- package/dist/@types/internal/defer-timer.d.ts +6 -12
- package/dist/@types/internal/defer-timer.d.ts.map +1 -1
- package/dist/@types/internal/drain-cycle.d.ts +5 -2
- package/dist/@types/internal/drain-cycle.d.ts.map +1 -1
- package/dist/@types/internal/index.d.ts +1 -1
- package/dist/@types/internal/index.d.ts.map +1 -1
- package/dist/@types/types/reaction.d.ts +3 -3
- package/dist/index.cjs +19 -19
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +19 -19
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reaction-builder.d.ts","sourceRoot":"","sources":["../../../src/builders/reaction-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"reaction-builder.d.ts","sourceRoot":"","sources":["../../../src/builders/reaction-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAKL,KAAK,MAAM,EACX,KAAK,WAAW,EAGjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EACL,KAAK,KAAK,EAIV,KAAK,MAAM,EAIX,KAAK,OAAO,EACb,MAAM,mBAAmB,CAAC;AAE3B;;;;;GAKG;AACH,MAAM,MAAM,YAAY,CACtB,OAAO,SAAS,OAAO,EACvB,QAAQ,SAAS,OAAO,EACxB,MAAM,SAAS,KAAK,GAAG,KAAK,IAC1B;IACF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;CACnE,CAAC;AAoDF;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,OAAO,SAAS,OAAO,EACvB,QAAQ,SAAS,OAAO,EACxB,MAAM,SAAS,KAAK,GAAG,KAAK,EAC5B,IAAI,EAAE,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAsFhE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,SAAS,OAAO,EACxD,MAAM,EAAE,MAAM,GACb,WAAW,CAAC,OAAO,CAAC,CAsCtB"}
|
|
@@ -42,6 +42,12 @@
|
|
|
42
42
|
import { z } from "zod";
|
|
43
43
|
import type { ActOptions } from "../act.js";
|
|
44
44
|
import type { ActionOptions, BackoffOptions, DrainOptions, FoldOptions, LaneConfig, ReactionOptions, SettleOptions, ShutdownOptions } from "../types/index.js";
|
|
45
|
+
/**
|
|
46
|
+
* Retry pacing for a reaction that declares no backoff. Ten seconds matches
|
|
47
|
+
* the default lease, which used to pace these retries. The lease now only
|
|
48
|
+
* keeps two workers off one stream; retry timing belongs to the reaction.
|
|
49
|
+
*/
|
|
50
|
+
export declare const DEFAULT_BACKOFF: BackoffOptions;
|
|
45
51
|
/** Validate a backoff bag, or pass `undefined` through. Throws `ZodError`. */
|
|
46
52
|
export declare function resolveBackoffConfig(options: BackoffOptions | undefined): BackoffOptions | undefined;
|
|
47
53
|
/** Retries a reaction gets before it blocks, unless `.do()` says otherwise. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/internal/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/internal/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,15 +8,10 @@
|
|
|
8
8
|
* at the earliest pending due-time, garbage-collecting the entries that have
|
|
9
9
|
* come due.
|
|
10
10
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* `defer` outcome that holds a stream pending without advancing the
|
|
16
|
-
* watermark or bumping `retry`.
|
|
17
|
-
* - the autoclose controller — to schedule its next eligibility check at the
|
|
18
|
-
* precise time an `after`-style cooldown elapses, instead of a blind
|
|
19
|
-
* fixed-interval sweep.
|
|
11
|
+
* The {@link "drain-cycle".DrainController} rides it for per-reaction
|
|
12
|
+
* backoff (a retry's `next_attempt_at`) and for the `defer` outcome, which
|
|
13
|
+
* holds a stream pending without advancing the watermark or bumping `retry`.
|
|
14
|
+
* The wake runs a drain, and the drain re-schedules the timer when it ends.
|
|
20
15
|
*
|
|
21
16
|
* Lives in process memory, per worker — the same per-worker pacing trade-off
|
|
22
17
|
* documented for backoff. Durability comes from the data the due-time is
|
|
@@ -35,9 +30,8 @@ export declare class DeferTimer {
|
|
|
35
30
|
private readonly _on_wake;
|
|
36
31
|
/**
|
|
37
32
|
* @param on_wake - invoked once each time the earliest due-time elapses,
|
|
38
|
-
* after the come-due entries have been removed.
|
|
39
|
-
*
|
|
40
|
-
* tick).
|
|
33
|
+
* after the come-due entries have been removed. The consumer re-schedules
|
|
34
|
+
* for whatever is still parked.
|
|
41
35
|
*/
|
|
42
36
|
constructor(on_wake: () => void);
|
|
43
37
|
/** Number of currently parked streams. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defer-timer.d.ts","sourceRoot":"","sources":["../../../src/internal/defer-timer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"defer-timer.d.ts","sourceRoot":"","sources":["../../../src/internal/defer-timer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAkBH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;IAClD,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IAEtC;;;;OAIG;IACH,YAAY,OAAO,EAAE,MAAM,IAAI,EAE9B;IAED,0CAA0C;IAC1C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;OAGG;IACH,WAAW,WAAY,MAAM,KAAG,OAAO,CAGrC;IAEF;;;;;OAKG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAEpC;IAED,6EAA6E;IAC7E,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE3B;IAED;;;;;;;OAOG;IACH,QAAQ,IAAI,IAAI,CA4Bf;IAED,+EAA+E;IAC/E,IAAI,IAAI,IAAI,CAKX;CACF"}
|
|
@@ -130,8 +130,11 @@ export declare class DrainController<TEvents extends Schemas, TActions extends S
|
|
|
130
130
|
private _ratio;
|
|
131
131
|
/**
|
|
132
132
|
* Local wake for streams this worker parked (backoff or defer). The
|
|
133
|
-
* schedule itself is persisted in the store; this
|
|
134
|
-
*
|
|
133
|
+
* schedule itself is persisted in the store; this runs the drain at the
|
|
134
|
+
* earliest pending visit. A parked stream already carries its mark, so
|
|
135
|
+
* the drain alone finds it, and on an idle app nothing else would.
|
|
136
|
+
* `stop()` cancels the timer and a stopped drain never re-schedules it,
|
|
137
|
+
* so a wake never runs after a stop.
|
|
135
138
|
*/
|
|
136
139
|
private readonly _defer;
|
|
137
140
|
/** Worker timer. Set when `start()` is active, undefined otherwise. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drain-cycle.d.ts","sourceRoot":"","sources":["../../../src/internal/drain-cycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,KAAK,EACL,YAAY,EAEZ,KAAK,EACL,MAAM,EAEN,eAAe,EACf,QAAQ,EACR,cAAc,EACd,OAAO,EACR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"drain-cycle.d.ts","sourceRoot":"","sources":["../../../src/internal/drain-cycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,7 +23,7 @@ export { compute_backoff_delay } from "./backoff.js";
|
|
|
23
23
|
export { CircuitBreaker, type CircuitState } from "./circuit-breaker.js";
|
|
24
24
|
export { CLOSE_CATCH_UP_LIMIT, CloseLock, catch_up_correlation, run_close_cycle, } from "./close-cycle.js";
|
|
25
25
|
export { CloseSignal } from "./close-signal.js";
|
|
26
|
-
export { type AutocloseConfig, type CircuitBreakerOptions, DEFAULT_AUTOCLOSE_CYCLE_MINUTES, DEFAULT_BLOCK_ON_ERROR, DEFAULT_CLOSE_BATCH_SIZE, DEFAULT_CLOSE_YIELD_MS, DEFAULT_MAX_RETRIES, DEFAULT_MAX_SUBSCRIBED_STREAMS, DEFAULT_SETTLE_DEBOUNCE_MS, DEFAULT_SHUTDOWN_GRACE_MS, type FoldConfig, MAX_SHUTDOWN_GRACE_MS, resolveActConfig, resolveActionConfig, resolveAutocloseConfig, resolveCircuitBreakerConfig, resolveDrainConfig, resolveFoldConfig, resolveLaneConfig, resolveReactionConfig, resolveSettleConfig, resolveShutdownConfig, } from "./config.js";
|
|
26
|
+
export { type AutocloseConfig, type CircuitBreakerOptions, DEFAULT_AUTOCLOSE_CYCLE_MINUTES, DEFAULT_BACKOFF, DEFAULT_BLOCK_ON_ERROR, DEFAULT_CLOSE_BATCH_SIZE, DEFAULT_CLOSE_YIELD_MS, DEFAULT_MAX_RETRIES, DEFAULT_MAX_SUBSCRIBED_STREAMS, DEFAULT_SETTLE_DEBOUNCE_MS, DEFAULT_SHUTDOWN_GRACE_MS, type FoldConfig, MAX_SHUTDOWN_GRACE_MS, resolveActConfig, resolveActionConfig, resolveAutocloseConfig, resolveCircuitBreakerConfig, resolveDrainConfig, resolveFoldConfig, resolveLaneConfig, resolveReactionConfig, resolveSettleConfig, resolveShutdownConfig, } from "./config.js";
|
|
27
27
|
export type { StaticTarget } from "./correlate-cycle.js";
|
|
28
28
|
export { CorrelateCycle } from "./correlate-cycle.js";
|
|
29
29
|
export { close_correlation, default_correlator } from "./correlator.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,KAAK,eAAe,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,oBAAoB,EACpB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,+BAA+B,EAC/B,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,8BAA8B,EAC9B,0BAA0B,EAC1B,yBAAyB,EACzB,KAAK,UAAU,EACf,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,KAAK,aAAa,EAClB,aAAa,EACb,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,eAAe,EACf,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,SAAS,EACd,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/internal/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EACL,KAAK,eAAe,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EACL,oBAAoB,EACpB,SAAS,EACT,oBAAoB,EACpB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,+BAA+B,EAC/B,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,8BAA8B,EAC9B,0BAA0B,EAC1B,yBAAyB,EACzB,KAAK,UAAU,EACf,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,KAAK,aAAa,EAClB,aAAa,EACb,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,eAAe,EACf,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,KAAK,sBAAsB,GAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,SAAS,EACd,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -147,9 +147,9 @@ export type LaneConfig<TName extends string = string> = {
|
|
|
147
147
|
* @property blockOnError - Whether to block on error.
|
|
148
148
|
* @property maxRetries - Retries after the first attempt: a failing stream
|
|
149
149
|
* is attempted `maxRetries + 1` times before it blocks.
|
|
150
|
-
* @property backoff - Optional retry pacing. When omitted, a retry
|
|
151
|
-
*
|
|
152
|
-
*
|
|
150
|
+
* @property backoff - Optional retry pacing. When omitted, a retry waits a
|
|
151
|
+
* fixed 10 seconds. Either way, no worker re-attempts the stream before
|
|
152
|
+
* the delay; the lease never sets retry timing.
|
|
153
153
|
*/
|
|
154
154
|
export type ReactionOptions = {
|
|
155
155
|
readonly blockOnError: boolean;
|
package/dist/index.cjs
CHANGED
|
@@ -2494,6 +2494,10 @@ var BackoffOptionsSchema = import_zod6.z.object({
|
|
|
2494
2494
|
maxMs: import_zod6.z.number().gt(0).optional(),
|
|
2495
2495
|
jitter: import_zod6.z.boolean().optional()
|
|
2496
2496
|
});
|
|
2497
|
+
var DEFAULT_BACKOFF = {
|
|
2498
|
+
strategy: "fixed",
|
|
2499
|
+
baseMs: 1e4
|
|
2500
|
+
};
|
|
2497
2501
|
var DEFAULT_MAX_RETRIES = 3;
|
|
2498
2502
|
var DEFAULT_BLOCK_ON_ERROR = true;
|
|
2499
2503
|
var ReactionOptionsSchema = import_zod6.z.object({
|
|
@@ -3698,9 +3702,8 @@ var DeferTimer = class {
|
|
|
3698
3702
|
_on_wake;
|
|
3699
3703
|
/**
|
|
3700
3704
|
* @param on_wake - invoked once each time the earliest due-time elapses,
|
|
3701
|
-
* after the come-due entries have been removed.
|
|
3702
|
-
*
|
|
3703
|
-
* tick).
|
|
3705
|
+
* after the come-due entries have been removed. The consumer re-schedules
|
|
3706
|
+
* for whatever is still parked.
|
|
3704
3707
|
*/
|
|
3705
3708
|
constructor(on_wake) {
|
|
3706
3709
|
this._on_wake = on_wake;
|
|
@@ -3753,14 +3756,9 @@ var DeferTimer = class {
|
|
|
3753
3756
|
this._timer = setTimeout(() => {
|
|
3754
3757
|
this._timer = void 0;
|
|
3755
3758
|
const now = Date.now();
|
|
3756
|
-
let came_due = false;
|
|
3757
3759
|
for (const [stream, at] of this._due)
|
|
3758
|
-
if (at <= now)
|
|
3759
|
-
this._due.delete(stream);
|
|
3760
|
-
came_due = true;
|
|
3761
|
-
}
|
|
3760
|
+
if (at <= now) this._due.delete(stream);
|
|
3762
3761
|
this._on_wake();
|
|
3763
|
-
if (!came_due && this._due.size > 0) this.schedule();
|
|
3764
3762
|
}, delay);
|
|
3765
3763
|
this._timer.unref();
|
|
3766
3764
|
}
|
|
@@ -4477,7 +4475,7 @@ async function run_drain_cycle(deps, cycle) {
|
|
|
4477
4475
|
handled: 0,
|
|
4478
4476
|
acked_at: lease.at,
|
|
4479
4477
|
error,
|
|
4480
|
-
...block2 ? { block: true } : {}
|
|
4478
|
+
...block2 ? { block: true } : { next_attempt_at: Date.now() + DEFAULT_BACKOFF.baseMs }
|
|
4481
4479
|
};
|
|
4482
4480
|
return Promise.resolve(failed);
|
|
4483
4481
|
}
|
|
@@ -4525,11 +4523,15 @@ var DrainController = class {
|
|
|
4525
4523
|
_ratio = 0.5;
|
|
4526
4524
|
/**
|
|
4527
4525
|
* Local wake for streams this worker parked (backoff or defer). The
|
|
4528
|
-
* schedule itself is persisted in the store; this
|
|
4529
|
-
*
|
|
4526
|
+
* schedule itself is persisted in the store; this runs the drain at the
|
|
4527
|
+
* earliest pending visit. A parked stream already carries its mark, so
|
|
4528
|
+
* the drain alone finds it, and on an idle app nothing else would.
|
|
4529
|
+
* `stop()` cancels the timer and a stopped drain never re-schedules it,
|
|
4530
|
+
* so a wake never runs after a stop.
|
|
4530
4531
|
*/
|
|
4531
4532
|
_defer = new DeferTimer(() => {
|
|
4532
4533
|
this._armed = true;
|
|
4534
|
+
void this._deps.run_scoped(() => this.drain());
|
|
4533
4535
|
});
|
|
4534
4536
|
/** Worker timer. Set when `start()` is active, undefined otherwise. */
|
|
4535
4537
|
_worker;
|
|
@@ -4617,13 +4619,13 @@ var DrainController = class {
|
|
|
4617
4619
|
async drain(options = {}) {
|
|
4618
4620
|
if (!this._armed) return EMPTY_DRAIN;
|
|
4619
4621
|
if (this._locked) return EMPTY_DRAIN;
|
|
4620
|
-
if (this._deps.breaker.state(Date.now()) === "open")
|
|
4621
|
-
return EMPTY_DRAIN;
|
|
4622
4622
|
const d = this._deps.defaults ?? {};
|
|
4623
4623
|
const streamLimit = d.streamLimit ?? options.streamLimit ?? DEFAULT_STREAM_LIMIT;
|
|
4624
4624
|
const eventLimit = d.eventLimit ?? options.eventLimit ?? DEFAULT_EVENT_LIMIT;
|
|
4625
4625
|
const leaseMillis = d.leaseMillis ?? options.leaseMillis ?? DEFAULT_LEASE_MILLIS;
|
|
4626
4626
|
try {
|
|
4627
|
+
if (this._deps.breaker.state(Date.now()) === "open")
|
|
4628
|
+
return EMPTY_DRAIN;
|
|
4627
4629
|
this._locked = true;
|
|
4628
4630
|
this._inflight = new Promise((done) => {
|
|
4629
4631
|
this._inflight_done = done;
|
|
@@ -4641,7 +4643,6 @@ var DrainController = class {
|
|
|
4641
4643
|
if (!cycle) {
|
|
4642
4644
|
this._deps.breaker.passed();
|
|
4643
4645
|
this._armed = false;
|
|
4644
|
-
if (this._defer.size > 0) this._defer.schedule();
|
|
4645
4646
|
return EMPTY_DRAIN;
|
|
4646
4647
|
}
|
|
4647
4648
|
const { leased, fetched, handled, acked, blocked, closeable } = cycle;
|
|
@@ -4650,11 +4651,9 @@ var DrainController = class {
|
|
|
4650
4651
|
for (const lease of acked) this._defer.delete(lease.stream);
|
|
4651
4652
|
for (const lease of blocked) this._defer.delete(lease.stream);
|
|
4652
4653
|
for (const h of handled) {
|
|
4653
|
-
const
|
|
4654
|
-
const next = h.defer ?? retry_at;
|
|
4654
|
+
const next = h.defer ?? h.next_attempt_at;
|
|
4655
4655
|
if (next !== void 0) this._defer.set(h.lease.stream, next);
|
|
4656
4656
|
}
|
|
4657
|
-
if (this._defer.size > 0) this._defer.schedule();
|
|
4658
4657
|
if (acked.length) this._deps.on_acked(acked);
|
|
4659
4658
|
if (closeable.length) await this._deps.on_close(closeable);
|
|
4660
4659
|
this._deps.breaker.passed();
|
|
@@ -4665,6 +4664,7 @@ var DrainController = class {
|
|
|
4665
4664
|
this._deps.breaker.failed(Date.now(), error);
|
|
4666
4665
|
return EMPTY_DRAIN;
|
|
4667
4666
|
} finally {
|
|
4667
|
+
if (!this._stopped) this._defer.schedule();
|
|
4668
4668
|
this._locked = false;
|
|
4669
4669
|
this._inflight = void 0;
|
|
4670
4670
|
this._inflight_done?.();
|
|
@@ -4870,7 +4870,7 @@ function finalize(lease, handled, at, error, options, logger, failed_at) {
|
|
|
4870
4870
|
logger.error(
|
|
4871
4871
|
non_retryable ? `Blocking ${lease.stream} on non-retryable error.` : `Blocking ${lease.stream} after ${lease.retry} retries.`
|
|
4872
4872
|
);
|
|
4873
|
-
const next_attempt_at =
|
|
4873
|
+
const next_attempt_at = block2 ? void 0 : Date.now() + compute_backoff_delay(lease.retry, options.backoff ?? DEFAULT_BACKOFF);
|
|
4874
4874
|
return {
|
|
4875
4875
|
lease,
|
|
4876
4876
|
handled,
|