pipework 0.209.0 → 0.211.0
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/CHANGELOG.md +8 -0
- package/REFERENCE.md +2 -1
- package/dist/async/jobs/execute.d.ts +2 -0
- package/dist/async/jobs/execute.d.ts.map +1 -1
- package/dist/async/jobs/execute.js +2 -0
- package/dist/async/jobs/execute.js.map +1 -1
- package/dist/async/jobs/queue.d.ts +9 -0
- package/dist/async/jobs/queue.d.ts.map +1 -1
- package/dist/async/jobs/queue.js +69 -12
- package/dist/async/jobs/queue.js.map +1 -1
- package/dist/async/jobs/scheduler.d.ts +5 -0
- package/dist/async/jobs/scheduler.d.ts.map +1 -1
- package/dist/async/jobs/scheduler.js +7 -3
- package/dist/async/jobs/scheduler.js.map +1 -1
- package/dist/async/jobs/table.d.ts +4 -0
- package/dist/async/jobs/table.d.ts.map +1 -1
- package/dist/async/jobs/table.js +13 -2
- package/dist/async/jobs/table.js.map +1 -1
- package/dist/async/steps/graph.d.ts.map +1 -1
- package/dist/async/steps/graph.js +24 -4
- package/dist/async/steps/graph.js.map +1 -1
- package/dist/async/steps/types.d.ts +6 -2
- package/dist/async/steps/types.d.ts.map +1 -1
- package/dist/core/surface/worker.d.ts.map +1 -1
- package/dist/core/surface/worker.js +2 -1
- package/dist/core/surface/worker.js.map +1 -1
- package/dist/request/context/create.d.ts +2 -0
- package/dist/request/context/create.d.ts.map +1 -1
- package/dist/request/context/create.js +3 -0
- package/dist/request/context/create.js.map +1 -1
- package/dist/request/context/types.d.ts +2 -0
- package/dist/request/context/types.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.211.0
|
|
4
|
+
|
|
5
|
+
- **Added: a step's `run` knows which attempt it is on, and its limit** (#796). `GraphStepContext.attempt` is the step job's 1-based attempt, counting an attempt a lost (reaped) worker used, and `ctx.maxAttempts` its limit (the step's `maxAttempts`, else the queue's), so a step can tell its last try and throw `JobPermanentError`. `autoAccept` and `forEach` run before any job and do not get them (their context types omit both). **Added:** `flow.jobMaxAttempts`, the worker-run job's attempt limit beside `flow.jobAttempt` (null elsewhere), and `executeJob({ maxAttempts })`. `Flow` gains the required field: code building a `Flow` literal adds `jobMaxAttempts: null`.
|
|
6
|
+
|
|
7
|
+
## 0.210.0
|
|
8
|
+
|
|
9
|
+
- **Added: `enqueue({ liveKey })` returns the live job instead of queuing a duplicate** (#794). While a job on the queue with the same key and the same tenant is pending, claimed or running, `enqueue` returns its id and inserts nothing (the second call's payload is ignored); once it completes, fails for good, is cancelled or is dead-lettered, the next `enqueue` inserts a new job. Atomic across concurrent enqueuers: a partial unique index `uq_<table>_live_key` on `(live_key, coalesce(flow_tenant, ''))` and `INSERT … ON CONFLICT DO NOTHING`, then a lookup. `ClaimedJob.liveKey` carries the key. `requeueDeadLetter` of a job whose key a live job now holds throws naming both. Schedule ticks enqueue with the key `schedule:<name>`, so two concurrent ticks never queue one schedule twice. **Migration:** queue tables gain a `live_key` column and the index; run `pipework generate`.
|
|
10
|
+
|
|
3
11
|
## 0.209.0
|
|
4
12
|
|
|
5
13
|
- **Fixed: a failed query's Postgres error was missing from the request-fault log line and alert** (#792). Pino's standard `err` serializer folds a `cause` into the message after Drizzle's `\nparams:` line and drops its fields, and `requestFaultsHook` used the top message alone, so a 500 from a constraint violation read only `Failed query: …`. Pipework's logger now serializes `err` with the causes' text on the message's first line (Drizzle's `params:` tail left to the `params` field) and a `cause` array of `{ type, message, code, detail, constraint_name, table_name, column_name }`, at most 5 deep, each message capped at 500 characters and the whole at 2000. The `request-fault:*` alert message carries the same text and its context a `cause` chain. `faultMessage`, and so every `recordFault`, folds causes in too, as do alert-source, loop-beat, outbox `last_error`, inbound and outbound email `error`, and test-bootstrap failure texts. 5xx response bodies are unchanged. A logger passed as `config.logger` keeps its own serializers. **Added:** `describeError(err)` returns `{ message, chain }`. Note that a Postgres `detail` can hold row values (`Key (email)=(…)`).
|
package/REFERENCE.md
CHANGED
|
@@ -245,7 +245,7 @@ Creates a job queue with claim/complete/fail lifecycle, heartbeat, and dead lett
|
|
|
245
245
|
|
|
246
246
|
### `jobs.execute`
|
|
247
247
|
|
|
248
|
-
Executes a fitting handler as a background job with its own Flow context. `attempt?` (1-based) sets `flow.jobAttempt`; the worker surface passes the claim's attempt, counting attempts a lost (reaped) worker used, so a handler reads `getContext()?.jobAttempt` (1 on the first run). It is `null` on request and test Flows and when `attempt` is omitted.
|
|
248
|
+
Executes a fitting handler as a background job with its own Flow context. `attempt?` (1-based) sets `flow.jobAttempt`; the worker surface passes the claim's attempt, counting attempts a lost (reaped) worker used, so a handler reads `getContext()?.jobAttempt` (1 on the first run). It is `null` on request and test Flows and when `attempt` is omitted. `maxAttempts?` likewise sets `flow.jobMaxAttempts`, the job's attempt limit (the worker surface passes the claim's), so a handler can tell its last try: `getContext()?.jobAttempt === getContext()?.jobMaxAttempts`.
|
|
249
249
|
|
|
250
250
|
A job handler's deps include `signal: AbortSignal`, aborted when the job is no longer this handler's (returned to pending on a shutdown abort, ended by a job timeout): `executeJob` rejects with an error and `signal.reason` is that same error. The handler keeps running after that, so check `signal` before any effect outside the database. It does not abort when the handler itself returns or throws, and `execute` without a signal still hands the handler one. Once it is aborted, `checkpoint(...)` rejects with `signal.reason` without touching the database.
|
|
251
251
|
|
|
@@ -272,6 +272,7 @@ Computes the next fire time for a CronSchedule after a given date, with optional
|
|
|
272
272
|
- **Tenant.** The job runs under the enqueuing Flow's `tenant` (the tenant string, whatever its key type), so row-level security applies as it does for a request.
|
|
273
273
|
- **Actor.** Only with `carryActor: true`: the job's `auth` is `{ userId }` from the Flow's `auth.userId`, so audited writes record that `actor_id`. Otherwise the job's `auth` is `null`.
|
|
274
274
|
- **Options on `EnqueueOptions`.** `continueFlow?: boolean` (default `true`; `false` records none of the above, so the job is a root trace with no tenant), `tenant?: string | null` (run under this tenant instead of the Flow's; `null` runs without one), `carryActor?: boolean` (default `false`), `actor?: string | null` (record this actor instead of the Flow's, `null` for none; overrides `carryActor`).
|
|
275
|
+
- **`liveKey?: string`.** While a job on this queue with the same key and the same tenant (`flow_tenant`) is live (pending, claimed or running), `enqueue` returns that job's id and inserts nothing; the second call's payload and other options are ignored. A completed, failed-for-good, cancelled or dead-lettered job no longer holds the key, so the next `enqueue` inserts a new job. It is atomic: a partial unique index `uq_<table>_live_key` on `(live_key, coalesce(flow_tenant, ''))` and `INSERT ... ON CONFLICT DO NOTHING`, then a lookup of the holder; an empty string throws. A claimed job carries it as `ClaimedJob.liveKey` (`null` when none). `requeueDeadLetter` of a job whose key a live job now holds throws. A queue table made before this option needs the `live_key` column and the index from `pipework generate`. Schedule ticks use the key `schedule:<name>`, so concurrent ticks never queue a schedule twice.
|
|
275
276
|
- **No Flow.** Enqueued outside any Flow (a script, a schedule): the columns are null and the job runs as before. Schedule-fired jobs never continue a flow.
|
|
276
277
|
- **Retries and `enqueueAndWait`** keep the recorded flow. `ClaimedJob.flow` exposes `{ traceId, rootId, stepId, tenant, actor }`.
|
|
277
278
|
- **`executeJob`** takes `parent?: ParentTraceRef | null` (`{ id, rootId, stepId? }`); omitted, it continues the active Flow's trace and records the open step as `parent_step_id`.
|
|
@@ -8,6 +8,8 @@ export interface ExecuteJobOptions {
|
|
|
8
8
|
jobType?: string;
|
|
9
9
|
/** 1-based attempt number, exposed as `flow.jobAttempt`. */
|
|
10
10
|
attempt?: number;
|
|
11
|
+
/** The job's attempt limit, exposed as `flow.jobMaxAttempts`. */
|
|
12
|
+
maxAttempts?: number;
|
|
11
13
|
auth?: unknown;
|
|
12
14
|
tenant?: string | null;
|
|
13
15
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/async/jobs/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAQ9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AASrE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,8EAA8E;IAC9E,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;;;OAIG;IACH,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IAC9B,mGAAmG;IACnG,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,aAAa,GAAG,OAAO,CAAC;QAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;IAC3G;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,wBAAsB,UAAU,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAC7E,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/async/jobs/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAQ9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AASrE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,8EAA8E;IAC9E,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;;;OAIG;IACH,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;IAC9B,mGAAmG;IACnG,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,aAAa,GAAG,OAAO,CAAC;QAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAA;IAC3G;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED,wBAAsB,UAAU,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAC7E,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,EAChC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,OAAO,CAAC,CAqGlB"}
|
|
@@ -24,6 +24,8 @@ export async function executeJob(handler, options) {
|
|
|
24
24
|
jobCtxOptions.jobType = options.jobType;
|
|
25
25
|
if (options.attempt !== undefined)
|
|
26
26
|
jobCtxOptions.attempt = options.attempt;
|
|
27
|
+
if (options.maxAttempts !== undefined)
|
|
28
|
+
jobCtxOptions.maxAttempts = options.maxAttempts;
|
|
27
29
|
if (options.auth !== undefined)
|
|
28
30
|
jobCtxOptions.auth = options.auth;
|
|
29
31
|
if (options.tenant !== undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/async/jobs/execute.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAA;AAClF,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AACzG,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAA;AAE7E,6EAA6E;AAC7E,MAAM,kCAAkC,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/async/jobs/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,6 +57,13 @@ export interface EnqueueOptions {
|
|
|
57
57
|
* `null` records no trace parent at all. Tenant and actor still follow `tenant` and `carryActor`.
|
|
58
58
|
*/
|
|
59
59
|
readonly parent?: ParentTraceRef | null;
|
|
60
|
+
/**
|
|
61
|
+
* While a job on this queue with the same key and the same tenant is live (pending, claimed or running),
|
|
62
|
+
* enqueue returns that job's id and inserts nothing — the payload and other options of this call are
|
|
63
|
+
* ignored. Once that job completes, fails for good or is cancelled, the next enqueue inserts a new job.
|
|
64
|
+
* A non-empty string.
|
|
65
|
+
*/
|
|
66
|
+
readonly liveKey?: string;
|
|
60
67
|
}
|
|
61
68
|
/** A job that has just been dead-lettered — handed to every `onDeadLetter` listener inside the transaction that did it. */
|
|
62
69
|
export interface DeadLetterInfo {
|
|
@@ -104,6 +111,8 @@ export interface ClaimedJob {
|
|
|
104
111
|
readonly exclusion?: ClaimedExclusion;
|
|
105
112
|
/** The Flow that enqueued this job; the worker surface restores its trace, tenant and actor. */
|
|
106
113
|
readonly flow: ClaimedFlow;
|
|
114
|
+
/** The `liveKey` the job was enqueued with; null when none. */
|
|
115
|
+
readonly liveKey: string | null;
|
|
107
116
|
/** The claims before this one, oldest first, each closed with its release time, reason and progress mark. */
|
|
108
117
|
readonly claims: readonly JobClaim[];
|
|
109
118
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/async/jobs/queue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAO,MAAM,wBAAwB,CAAA;AAGrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAG9D,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1E,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAElF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAS3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAErE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAA;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,4GAA4G;AAC5G,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,MAAM,CAAA;IACzD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAA;IAChC,gIAAgI;IAChI,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,uHAAuH;IACvH,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAA;CACrC;AAED,mFAAmF;AACnF,MAAM,WAAW,gBAAgB;IAC/B,qFAAqF;IACrF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAA;IACzC,kFAAkF;IAClF,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,sFAAsF;IACtF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAA;IACrC;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,8GAA8G;IAC9G,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,0HAA0H;IAC1H,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/async/jobs/queue.ts"],"names":[],"mappings":"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"}
|
package/dist/async/jobs/queue.js
CHANGED
|
@@ -7,13 +7,24 @@ import { createScheduler } from './scheduler.js';
|
|
|
7
7
|
import { resolveExclusion, exclusionClaimClause } from './exclusion.js';
|
|
8
8
|
import { openClaim, closeClaim, parseClaims } from './claims.js';
|
|
9
9
|
import { serializeError } from './serialize-error.js';
|
|
10
|
-
import { queueDefinition, registerProgressColumn } from './table.js';
|
|
10
|
+
import { queueDefinition, registerProgressColumn, liveKeyIndexName, LIVE_KEY_TENANT_EXPR, LIVE_KEY_PREDICATE } from './table.js';
|
|
11
11
|
import { queueDoorName } from './queue-door.js';
|
|
12
12
|
import { unscopedExecutor, requireUnscopedExecutor } from '../../auth/tenant/scoped-db.js';
|
|
13
13
|
import { getContext } from '../../request/context/store.js';
|
|
14
14
|
import { resolveActorId } from '../../data/write/audit/actor.js';
|
|
15
15
|
import { getBaseLogger } from '../../core/logging/index.js';
|
|
16
16
|
import { recordFault, faultMessage } from '../../infra/alerts/faults.js';
|
|
17
|
+
/** Whether the error (or a cause in its chain) is the unique violation of the queue's live-key index. */
|
|
18
|
+
function isLiveKeyViolation(err, constraint) {
|
|
19
|
+
let current = err;
|
|
20
|
+
for (let depth = 0; depth < 4 && typeof current === 'object' && current !== null; depth++) {
|
|
21
|
+
const e = current;
|
|
22
|
+
if (e.code === '23505' && e.constraint_name === constraint)
|
|
23
|
+
return true;
|
|
24
|
+
current = current.cause;
|
|
25
|
+
}
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
17
28
|
/** Serializes values into a Postgres array literal (`{"a","b"}`) — sent as one text param and cast to the element type. */
|
|
18
29
|
function pgArrayLiteral(values) {
|
|
19
30
|
const escaped = values.map(v => `"${v.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`);
|
|
@@ -86,6 +97,16 @@ export function createQueue(config = {}) {
|
|
|
86
97
|
' from an unscoped handle (pipe.system(), or pool.getOrCreate(...).drizzle).\n');
|
|
87
98
|
}
|
|
88
99
|
async function enqueue(handle, opts) {
|
|
100
|
+
return (await enqueueJob(handle, opts)).id;
|
|
101
|
+
}
|
|
102
|
+
/** The tries an enqueue with a liveKey makes while the live job it conflicts with keeps finishing before it can be read. */
|
|
103
|
+
const LIVE_KEY_TRIES = 3;
|
|
104
|
+
/** Enqueues, or with a liveKey returns the live job holding the key (`created: false`). */
|
|
105
|
+
async function enqueueJob(handle, opts) {
|
|
106
|
+
if (opts.liveKey !== undefined && opts.liveKey === '') {
|
|
107
|
+
throw new Error(`[pipework] enqueue() on queue "${table}" received an empty liveKey.\n\n` +
|
|
108
|
+
' An empty key would make every such job share one slot. Pass a non-empty string, or omit liveKey.\n');
|
|
109
|
+
}
|
|
89
110
|
const { db, tenant: scopedTenant } = unscopedExecutor(handle);
|
|
90
111
|
const priority = opts.priority ?? 0;
|
|
91
112
|
const payload = JSON.stringify(opts.payload);
|
|
@@ -142,10 +163,35 @@ export function createQueue(config = {}) {
|
|
|
142
163
|
values.push(sql `${given.blocksAll}`);
|
|
143
164
|
}
|
|
144
165
|
}
|
|
145
|
-
|
|
166
|
+
if (opts.liveKey === undefined) {
|
|
167
|
+
const rows = await db.execute(sql `INSERT INTO ${sql.raw(tableQ)} (${sql.raw(columns.join(', '))})
|
|
168
|
+
VALUES (${sql.join(values, sql `, `)})
|
|
169
|
+
RETURNING id::text`);
|
|
170
|
+
return { id: rows[0]['id'], created: true };
|
|
171
|
+
}
|
|
172
|
+
columns.push('live_key');
|
|
173
|
+
values.push(sql `${opts.liveKey}::text`);
|
|
174
|
+
const insert = sql `INSERT INTO ${sql.raw(tableQ)} (${sql.raw(columns.join(', '))})
|
|
146
175
|
VALUES (${sql.join(values, sql `, `)})
|
|
147
|
-
|
|
148
|
-
|
|
176
|
+
ON CONFLICT (live_key, (${sql.raw(LIVE_KEY_TENANT_EXPR)})) WHERE ${sql.raw(LIVE_KEY_PREDICATE)} DO NOTHING
|
|
177
|
+
RETURNING id::text`;
|
|
178
|
+
// A separate statement for the lookup: a CTE would share the insert's snapshot and could not see
|
|
179
|
+
// a conflicting row a concurrent enqueuer committed after it began.
|
|
180
|
+
const lookup = sql `SELECT id::text FROM ${sql.raw(tableQ)}
|
|
181
|
+
WHERE live_key = ${opts.liveKey}::text AND ${sql.raw(LIVE_KEY_TENANT_EXPR)} = coalesce(${flow.tenant}::text, '')
|
|
182
|
+
AND status IN ('pending', 'claimed', 'running')
|
|
183
|
+
LIMIT 1`;
|
|
184
|
+
for (let attempt = 0; attempt < LIVE_KEY_TRIES; attempt++) {
|
|
185
|
+
const inserted = await db.execute(insert);
|
|
186
|
+
if (inserted.length > 0)
|
|
187
|
+
return { id: inserted[0]['id'], created: true };
|
|
188
|
+
const live = await db.execute(lookup);
|
|
189
|
+
if (live.length > 0)
|
|
190
|
+
return { id: live[0]['id'], created: false };
|
|
191
|
+
}
|
|
192
|
+
throw new Error(`[pipework] enqueue() on queue "${table}" could not settle liveKey "${opts.liveKey}" after ${LIVE_KEY_TRIES} tries.\n\n` +
|
|
193
|
+
' Each try found the key held by a live job that finished before it could be read, then lost the\n' +
|
|
194
|
+
' insert again. Retry the enqueue.\n');
|
|
149
195
|
}
|
|
150
196
|
function buildClaimQuery(workerId, types, release) {
|
|
151
197
|
const typeClause = types !== undefined ? sql ` AND candidate.job_type = ANY(${pgArrayLiteral(types)}::text[])` : sql ``;
|
|
@@ -177,7 +223,7 @@ export function createQueue(config = {}) {
|
|
|
177
223
|
FOR UPDATE SKIP LOCKED
|
|
178
224
|
LIMIT 1
|
|
179
225
|
)
|
|
180
|
-
RETURNING id::text, job_type, priority, payload, created_lsn::text, claim_token::text, attempt_count, max_attempts, error_payload->>'reason' AS previous_reason, error_payload->>'workerId' AS previous_worker_id, flow_trace_id::text, flow_root_id::text, flow_step_id::text, flow_tenant, flow_actor, claims #- ARRAY[(jsonb_array_length(claims) - 1)::text] AS claims_before${sql.raw(exclusionReturning)}`;
|
|
226
|
+
RETURNING id::text, job_type, priority, payload, created_lsn::text, claim_token::text, attempt_count, max_attempts, error_payload->>'reason' AS previous_reason, error_payload->>'workerId' AS previous_worker_id, flow_trace_id::text, flow_root_id::text, flow_step_id::text, flow_tenant, flow_actor, live_key, claims #- ARRAY[(jsonb_array_length(claims) - 1)::text] AS claims_before${sql.raw(exclusionReturning)}`;
|
|
181
227
|
}
|
|
182
228
|
function previousOf(row) {
|
|
183
229
|
const reason = row['previous_reason'];
|
|
@@ -197,6 +243,7 @@ export function createQueue(config = {}) {
|
|
|
197
243
|
maxAttempts: row['max_attempts'],
|
|
198
244
|
previous: previousOf(row),
|
|
199
245
|
claims: parseClaims(row['claims_before']),
|
|
246
|
+
liveKey: row['live_key'] ?? null,
|
|
200
247
|
flow: {
|
|
201
248
|
traceId: row['flow_trace_id'] ?? null,
|
|
202
249
|
rootId: row['flow_root_id'] ?? null,
|
|
@@ -481,12 +528,22 @@ export function createQueue(config = {}) {
|
|
|
481
528
|
}
|
|
482
529
|
async function requeueDeadLetter(handle, jobId) {
|
|
483
530
|
const { db, tenant } = unscopedExecutor(handle);
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
531
|
+
let rows;
|
|
532
|
+
try {
|
|
533
|
+
rows = await db.execute(sql `UPDATE ${sql.raw(tableQ)} SET
|
|
534
|
+
status = 'pending', attempt_count = 0, max_attempts = ${maxAttempts},
|
|
535
|
+
completed_at = NULL, next_retry_at = NULL, claimed_at = NULL,
|
|
536
|
+
heartbeat_at = NULL, worker_id = NULL, claim_token = NULL
|
|
537
|
+
WHERE id = ${jobId}::uuid AND status = 'dead_letter'${tenantAnd(tenant)}
|
|
538
|
+
RETURNING id`);
|
|
539
|
+
}
|
|
540
|
+
catch (err) {
|
|
541
|
+
if (!isLiveKeyViolation(err, liveKeyIndexName(table)))
|
|
542
|
+
throw err;
|
|
543
|
+
const held = await db.execute(sql `SELECT live_key FROM ${sql.raw(tableQ)} WHERE id = ${jobId}::uuid`);
|
|
544
|
+
throw new Error(`[pipework] Cannot requeue job "${jobId}" — a live job already holds its liveKey "${String(held[0]?.['live_key'])}".\n\n` +
|
|
545
|
+
' Requeueing would make a second live job with the same key. Let the live job finish or cancel it, then requeue.\n', { cause: err });
|
|
546
|
+
}
|
|
490
547
|
if (rows.length === 0) {
|
|
491
548
|
throw new Error(`[pipework] Cannot requeue job "${jobId}" — job not found or not in dead_letter status.`);
|
|
492
549
|
}
|
|
@@ -505,7 +562,7 @@ export function createQueue(config = {}) {
|
|
|
505
562
|
const jobId = await enqueue(db, opts);
|
|
506
563
|
return waitFor(db, jobId, waitOpts);
|
|
507
564
|
}
|
|
508
|
-
const sched = createScheduler({ enqueue }, tableQ);
|
|
565
|
+
const sched = createScheduler({ enqueue, enqueueJob }, tableQ);
|
|
509
566
|
return {
|
|
510
567
|
definition,
|
|
511
568
|
door: exclusion?.tenantColumn !== undefined ? queueDoorName(table) : null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/async/jobs/queue.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/async/jobs/queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,11 @@ import type { DB } from '../../data/db/index.js';
|
|
|
2
2
|
import type { EnqueueOptions } from './queue.js';
|
|
3
3
|
export interface Enqueuer {
|
|
4
4
|
enqueue(db: DB, opts: EnqueueOptions): Promise<string>;
|
|
5
|
+
/** `enqueue` that also says whether it inserted a job (false: it returned the live job holding the `liveKey`). */
|
|
6
|
+
enqueueJob(db: DB, opts: EnqueueOptions): Promise<{
|
|
7
|
+
id: string;
|
|
8
|
+
created: boolean;
|
|
9
|
+
}>;
|
|
5
10
|
}
|
|
6
11
|
export interface ScheduleSpec {
|
|
7
12
|
readonly name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../src/async/jobs/scheduler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAA;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAGhD,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../src/async/jobs/scheduler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAA;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAGhD,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACtD,kHAAkH;IAClH,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CACpF;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,iFAAiF;IACjF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,gGAAgG;IAChG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IACzC,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CACxF;AAED,MAAM,WAAW,SAAS;IACxB,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,2HAA2H;IAC3H,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,YAAY,EAAE,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC5F,0GAA0G;IAC1G,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3C;;;;;OAKG;IACH,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACxD,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAClD,aAAa,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IAC9C,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC5C,IAAI,IAAI,IAAI,CAAA;CACb;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CA+JjF"}
|
|
@@ -83,19 +83,23 @@ export function createScheduler(enqueuer, jobsTableQ) {
|
|
|
83
83
|
const row = due[0];
|
|
84
84
|
const name = row['name'];
|
|
85
85
|
const next = nextTick(parseCron(row['cron_expression']), new Date(), row['timezone']);
|
|
86
|
-
|
|
86
|
+
// A job of this type queued by other means (no key) also holds the schedule back. The key then
|
|
87
|
+
// makes concurrent ticks of this schedule atomic where the check alone is not.
|
|
88
|
+
const queued = await tx.execute(sql `
|
|
87
89
|
SELECT 1 FROM ${sql.raw(jobsTableQ)}
|
|
88
90
|
WHERE job_type = ${name} AND status IN ('pending', 'claimed')
|
|
89
91
|
LIMIT 1
|
|
90
92
|
`);
|
|
91
|
-
|
|
93
|
+
const created = queued.length === 0 && (await enqueuer.enqueueJob(tx, {
|
|
94
|
+
type: name, payload: row['payload'] ?? {}, continueFlow: false, liveKey: `schedule:${name}`,
|
|
95
|
+
})).created;
|
|
96
|
+
if (!created) {
|
|
92
97
|
await tx.execute(sql `
|
|
93
98
|
UPDATE pipework_schedules SET next_run_at = ${next.toISOString()}::timestamptz, updated_at = now()
|
|
94
99
|
WHERE name = ${name}
|
|
95
100
|
`);
|
|
96
101
|
return 'skipped';
|
|
97
102
|
}
|
|
98
|
-
await enqueuer.enqueue(tx, { type: name, payload: row['payload'] ?? {}, continueFlow: false });
|
|
99
103
|
await tx.execute(sql `
|
|
100
104
|
UPDATE pipework_schedules SET
|
|
101
105
|
last_run_at = now(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/async/jobs/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAE1C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/async/jobs/scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,10 @@ import type { ResolvedExclusion } from './exclusion.js';
|
|
|
3
3
|
export declare const QUEUE_STATUSES: readonly ["pending", "claimed", "running", "completed", "failed", "cancelled", "dead_letter"];
|
|
4
4
|
/** Column names every queue table owns — exclusion columns must not collide with these. */
|
|
5
5
|
export declare const QUEUE_BASE_COLUMNS: ReadonlySet<string>;
|
|
6
|
+
/** The live-key index's tenant expression and predicate; enqueue's ON CONFLICT must repeat them exactly. */
|
|
7
|
+
export declare const LIVE_KEY_TENANT_EXPR = "coalesce(flow_tenant, '')";
|
|
8
|
+
export declare const LIVE_KEY_PREDICATE = "live_key IS NOT NULL AND status IN ('pending', 'claimed', 'running')";
|
|
9
|
+
export declare function liveKeyIndexName(tableName: string): string;
|
|
6
10
|
/** Records (or clears) the queue's configured progress column so startup validation can check the table has it. */
|
|
7
11
|
export declare function registerProgressColumn(tableName: string, column: string | undefined): void;
|
|
8
12
|
/** Progress columns configured per queue table. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/async/jobs/table.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,4BAA4B,CAAA;AAK/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAEvD,eAAO,MAAM,cAAc,+FAAgG,CAAA;AAE3H,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAKjD,CAAA;
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/async/jobs/table.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,4BAA4B,CAAA;AAK/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAEvD,eAAO,MAAM,cAAc,+FAAgG,CAAA;AAE3H,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAKjD,CAAA;AAEF,4GAA4G;AAC5G,eAAO,MAAM,oBAAoB,8BAA8B,CAAA;AAC/D,eAAO,MAAM,kBAAkB,yEAAyE,CAAA;AACxG,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE1D;AAiED,mHAAmH;AACnH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAG1F;AAED,mDAAmD;AACnD,wBAAgB,oBAAoB,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAElE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,SAAS,GAAG,YAAY,CA2DzG;AAED,8FAA8F;AAC9F,wBAAgB,gBAAgB,IAAI,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAEpE"}
|
package/dist/async/jobs/table.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
import { define } from '../../data/domain/index.js';
|
|
10
10
|
import { field } from '../../data/domain/field.js';
|
|
11
11
|
import { schema } from '../../data/schema/namespace.js';
|
|
12
|
-
import { index } from '../../data/db/idx/index.js';
|
|
12
|
+
import { index, uniqueIndex } from '../../data/db/idx/index.js';
|
|
13
13
|
import { quoteIdentifier } from '../../data/db/identifiers.js';
|
|
14
14
|
import { sql } from '../../data/db/sql.js';
|
|
15
15
|
export const QUEUE_STATUSES = ['pending', 'claimed', 'running', 'completed', 'failed', 'cancelled', 'dead_letter'];
|
|
@@ -18,8 +18,14 @@ export const QUEUE_BASE_COLUMNS = new Set([
|
|
|
18
18
|
'id', 'job_type', 'priority', 'status', 'payload', 'output', 'error_payload',
|
|
19
19
|
'created_lsn', 'queued_at', 'claimed_at', 'heartbeat_at', 'completed_at',
|
|
20
20
|
'worker_id', 'worker_release', 'claims', 'attempt_count', 'max_attempts', 'next_retry_at', 'claim_token',
|
|
21
|
-
'flow_trace_id', 'flow_root_id', 'flow_step_id', 'flow_tenant', 'flow_actor',
|
|
21
|
+
'flow_trace_id', 'flow_root_id', 'flow_step_id', 'flow_tenant', 'flow_actor', 'live_key',
|
|
22
22
|
]);
|
|
23
|
+
/** The live-key index's tenant expression and predicate; enqueue's ON CONFLICT must repeat them exactly. */
|
|
24
|
+
export const LIVE_KEY_TENANT_EXPR = `coalesce(flow_tenant, '')`;
|
|
25
|
+
export const LIVE_KEY_PREDICATE = `live_key IS NOT NULL AND status IN ('pending', 'claimed', 'running')`;
|
|
26
|
+
export function liveKeyIndexName(tableName) {
|
|
27
|
+
return `uq_${tableName}_live_key`;
|
|
28
|
+
}
|
|
23
29
|
function queueFields(exclusion) {
|
|
24
30
|
const fields = {
|
|
25
31
|
id: field.uuid().primaryKey().defaultRandom(),
|
|
@@ -55,6 +61,8 @@ function queueFields(exclusion) {
|
|
|
55
61
|
flowStepId: field.uuid().nullable(),
|
|
56
62
|
flowTenant: field.text().nullable(),
|
|
57
63
|
flowActor: field.text().nullable(),
|
|
64
|
+
// enqueue's liveKey: at most one live job per (key, tenant), enforced by the partial unique index.
|
|
65
|
+
liveKey: field.text().nullable(),
|
|
58
66
|
};
|
|
59
67
|
if (exclusion?.tenantColumn !== undefined) {
|
|
60
68
|
fields[exclusion.tenantColumn] = field.uuid().tenant();
|
|
@@ -105,6 +113,9 @@ export function queueDefinition(tableName, exclusion) {
|
|
|
105
113
|
claimable: index(`idx_${tableName}_claimable`)
|
|
106
114
|
.on(t['priority'].desc(), t['queuedAt'].asc())
|
|
107
115
|
.where(sql.raw(`status = 'pending'`)),
|
|
116
|
+
liveKey: uniqueIndex(liveKeyIndexName(tableName))
|
|
117
|
+
.on(t['liveKey'], sql.raw(LIVE_KEY_TENANT_EXPR))
|
|
118
|
+
.where(sql.raw(LIVE_KEY_PREDICATE)),
|
|
108
119
|
stale: index(`idx_${tableName}_stale`)
|
|
109
120
|
.on(t['heartbeatAt'])
|
|
110
121
|
.where(sql.raw(`status IN ('claimed', 'running')`)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../src/async/jobs/table.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,EAAE;AACF,4EAA4E;AAC5E,yEAAyE;AACzE,oEAAoE;AACpE,uEAAuE;AACvE,2EAA2E;AAC3E,6DAA6D;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../src/async/jobs/table.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/async/steps/graph.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EACiC,WAAW,EACuE,SAAS,EACvI,MAAM,YAAY,CAAA;AAwInB,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/async/steps/graph.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EACiC,WAAW,EACuE,SAAS,EACvI,MAAM,YAAY,CAAA;AAwInB,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CA0gC1D"}
|