effect-mq 0.1.0 → 0.3.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.
Files changed (67) hide show
  1. package/README.md +305 -25
  2. package/dist/Job.d.ts +118 -5
  3. package/dist/Job.d.ts.map +1 -1
  4. package/dist/Job.js +119 -4
  5. package/dist/Job.js.map +1 -1
  6. package/dist/JobStore.d.ts +260 -9
  7. package/dist/JobStore.d.ts.map +1 -1
  8. package/dist/JobStore.js +115 -1
  9. package/dist/JobStore.js.map +1 -1
  10. package/dist/MemoryJobStore.d.ts +38 -6
  11. package/dist/MemoryJobStore.d.ts.map +1 -1
  12. package/dist/MemoryJobStore.js +351 -47
  13. package/dist/MemoryJobStore.js.map +1 -1
  14. package/dist/Worker.d.ts +5 -1
  15. package/dist/Worker.d.ts.map +1 -1
  16. package/dist/Worker.js +117 -10
  17. package/dist/Worker.js.map +1 -1
  18. package/dist/{drizzle → drizzle-postgres}/DrizzleJobStore.d.ts +35 -2
  19. package/dist/drizzle-postgres/DrizzleJobStore.d.ts.map +1 -0
  20. package/dist/drizzle-postgres/DrizzleJobStore.js +941 -0
  21. package/dist/drizzle-postgres/DrizzleJobStore.js.map +1 -0
  22. package/dist/drizzle-postgres/index.d.ts.map +1 -0
  23. package/dist/drizzle-postgres/index.js.map +1 -0
  24. package/dist/drizzle-postgres/schema.d.ts +670 -0
  25. package/dist/drizzle-postgres/schema.d.ts.map +1 -0
  26. package/dist/drizzle-postgres/schema.js +150 -0
  27. package/dist/drizzle-postgres/schema.js.map +1 -0
  28. package/dist/redis/RedisJobStore.d.ts +58 -0
  29. package/dist/redis/RedisJobStore.d.ts.map +1 -0
  30. package/dist/redis/RedisJobStore.js +424 -0
  31. package/dist/redis/RedisJobStore.js.map +1 -0
  32. package/dist/redis/index.d.ts +9 -0
  33. package/dist/redis/index.d.ts.map +1 -0
  34. package/dist/redis/index.js +9 -0
  35. package/dist/redis/index.js.map +1 -0
  36. package/dist/redis/scripts.d.ts +181 -0
  37. package/dist/redis/scripts.d.ts.map +1 -0
  38. package/dist/redis/scripts.js +940 -0
  39. package/dist/redis/scripts.js.map +1 -0
  40. package/dist/testing/conformance.d.ts.map +1 -1
  41. package/dist/testing/conformance.js +502 -8
  42. package/dist/testing/conformance.js.map +1 -1
  43. package/package.json +8 -4
  44. package/src/Job.ts +301 -10
  45. package/src/JobStore.ts +373 -9
  46. package/src/MemoryJobStore.ts +440 -53
  47. package/src/Worker.ts +153 -10
  48. package/src/drizzle-postgres/DrizzleJobStore.ts +1311 -0
  49. package/src/drizzle-postgres/schema.ts +279 -0
  50. package/src/redis/RedisJobStore.ts +652 -0
  51. package/src/redis/index.ts +8 -0
  52. package/src/redis/scripts.ts +1055 -0
  53. package/src/testing/conformance.ts +665 -8
  54. package/dist/drizzle/DrizzleJobStore.d.ts.map +0 -1
  55. package/dist/drizzle/DrizzleJobStore.js +0 -426
  56. package/dist/drizzle/DrizzleJobStore.js.map +0 -1
  57. package/dist/drizzle/index.d.ts.map +0 -1
  58. package/dist/drizzle/index.js.map +0 -1
  59. package/dist/drizzle/schema.d.ts +0 -464
  60. package/dist/drizzle/schema.d.ts.map +0 -1
  61. package/dist/drizzle/schema.js +0 -68
  62. package/dist/drizzle/schema.js.map +0 -1
  63. package/src/drizzle/DrizzleJobStore.ts +0 -599
  64. package/src/drizzle/schema.ts +0 -116
  65. /package/dist/{drizzle → drizzle-postgres}/index.d.ts +0 -0
  66. /package/dist/{drizzle → drizzle-postgres}/index.js +0 -0
  67. /package/src/{drizzle → drizzle-postgres}/index.ts +0 -0
package/dist/Job.js CHANGED
@@ -30,10 +30,35 @@
30
30
  *
31
31
  * @since 0.1.0
32
32
  */
33
- import { Duration, Effect, Layer, Option, Schedule, Schema } from "effect";
34
- import { JobId, JobNotFoundError, JobStore, QueueName } from "./JobStore.js";
33
+ import { Clock, Duration, Effect, Layer, Option, Predicate, Schedule, Schema } from "effect";
34
+ import { JobCancelledError, JobId, JobNotFoundError, JobStore, nextOccurrence, QueueName, ScheduleKey, unrecoverable } from "./JobStore.js";
35
+ export {
36
+ /**
37
+ * Mark an error value as unrecoverable: the worker skips the remaining
38
+ * retry budget and fails the job immediately. Returns the error unchanged.
39
+ *
40
+ * @since 0.2.0
41
+ */
42
+ unrecoverable };
35
43
  import { Worker } from "./Worker.js";
36
44
  const TypeId = "~effect-mq/Job";
45
+ const normalizeDedupe = (input) => {
46
+ if (input === undefined)
47
+ return undefined;
48
+ const config = Predicate.isString(input) ? { key: input } : input;
49
+ if (config.key === "") {
50
+ throw new Error("effect-mq: dedupe `key` must be non-empty");
51
+ }
52
+ if (config.extend === true && config.ttl === undefined) {
53
+ throw new Error("effect-mq: dedupe `extend` requires a `ttl`");
54
+ }
55
+ return {
56
+ key: config.key,
57
+ ttlMs: config.ttl !== undefined ? Duration.toMillis(config.ttl) : undefined,
58
+ extend: config.extend === true,
59
+ replace: config.replace === true
60
+ };
61
+ };
37
62
  const defaultPollSchedule = Schedule.min([
38
63
  Schedule.exponential(10, 2),
39
64
  Schedule.spaced("1 second")
@@ -43,9 +68,31 @@ const normalizeBackoff = (input) => input === undefined ? undefined : {
43
68
  delayMs: Duration.toMillis(input.delay),
44
69
  factor: input.factor
45
70
  };
46
- const normalizeKeep = (input) => input === undefined ? undefined : {
71
+ const normalizeKeepState = (input) => ({
47
72
  count: input.count,
48
73
  ageMs: input.age !== undefined ? Duration.toMillis(input.age) : undefined
74
+ });
75
+ const normalizeKeep = (input) => {
76
+ if (input === undefined)
77
+ return undefined;
78
+ const split = "completed" in input || "failed" in input || "cancelled" in input;
79
+ const flat = "count" in input || "age" in input;
80
+ if (split && flat) {
81
+ throw new Error("effect-mq: `keep` must be either flat { count, age } or split per state, not both");
82
+ }
83
+ if (split) {
84
+ // SAFETY: the flat branch was excluded above, so the state keys carry
85
+ // KeepStateInput values.
86
+ const perState = input;
87
+ return {
88
+ completed: perState.completed !== undefined ? normalizeKeepState(perState.completed) : undefined,
89
+ failed: perState.failed !== undefined ? normalizeKeepState(perState.failed) : undefined,
90
+ cancelled: perState.cancelled !== undefined ? normalizeKeepState(perState.cancelled) : undefined
91
+ };
92
+ }
93
+ // SAFETY: the split branch was excluded above, so this is the flat form.
94
+ const policy = normalizeKeepState(input);
95
+ return { completed: policy, failed: policy, cancelled: policy };
49
96
  };
50
97
  const Proto = {
51
98
  [TypeId]: TypeId,
@@ -61,6 +108,7 @@ const Proto = {
61
108
  ...this.metadata?.(payload),
62
109
  ...options?.metadata
63
110
  };
111
+ const dedupe = normalizeDedupe(options?.dedupe ?? this.dedupe?.(payload));
64
112
  return Schema.encodeEffect(this.payloadJsonSchema)(payload).pipe(Effect.orDie, Effect.flatMap((encoded) => Effect.flatMap(this.store, (store) => store.enqueue({
65
113
  id,
66
114
  name: this._tag,
@@ -77,6 +125,10 @@ const Proto = {
77
125
  keep: options?.keep !== undefined
78
126
  ? normalizeKeep(options.keep)
79
127
  : this.defaults.keep,
128
+ timeoutMs: options?.timeout !== undefined
129
+ ? Duration.toMillis(options.timeout)
130
+ : this.defaults.timeoutMs,
131
+ dedupe,
80
132
  delayMs: options?.delay !== undefined
81
133
  ? Duration.toMillis(options.delay)
82
134
  : this.defaults.delayMs
@@ -124,6 +176,9 @@ const Proto = {
124
176
  return yield* Effect.die(new JobNotFoundError({ jobId }));
125
177
  }
126
178
  const { exit, failedReason, state } = status.value;
179
+ if (state === "cancelled") {
180
+ return yield* Effect.die(new JobCancelledError({ jobId }));
181
+ }
127
182
  if (state === "completed" || state === "failed") {
128
183
  if (Option.isSome(exit)) {
129
184
  return yield* exit.value;
@@ -141,6 +196,57 @@ const Proto = {
141
196
  retry(jobId) {
142
197
  return Effect.flatMap(this.store, (store) => store.retry(jobId).pipe(Effect.catchTag("JobStoreError", (error) => Effect.die(error)))).pipe(Effect.withSpan(`${this._tag}.retry`, { attributes: { jobId } }, { captureStackTrace: false }));
143
198
  },
199
+ cancel(jobId) {
200
+ return Effect.flatMap(this.store, (store) => store.cancel(jobId).pipe(Effect.catchTag("JobStoreError", (error) => Effect.die(error)))).pipe(Effect.withSpan(`${this._tag}.cancel`, { attributes: { jobId } }, { captureStackTrace: false }));
201
+ },
202
+ promote(jobId) {
203
+ return Effect.flatMap(this.store, (store) => store.promote(jobId).pipe(Effect.catchTag("JobStoreError", (error) => Effect.die(error)))).pipe(Effect.withSpan(`${this._tag}.promote`, { attributes: { jobId } }, { captureStackTrace: false }));
204
+ },
205
+ schedule(key, options) {
206
+ const self = this;
207
+ return Effect.gen(function* () {
208
+ const hasCron = options.cron !== undefined;
209
+ const hasEvery = options.every !== undefined;
210
+ if (hasCron === hasEvery) {
211
+ return yield* Effect.die(new Error(`effect-mq: schedule "${key}" must set exactly one of \`cron\` or \`every\``));
212
+ }
213
+ const everyMs = options.every !== undefined ? Duration.toMillis(options.every) : undefined;
214
+ const now = yield* Clock.currentTimeMillis;
215
+ const nextRunAt = nextOccurrence({ cron: options.cron, tz: options.tz, everyMs }, now, now);
216
+ if (nextRunAt === undefined) {
217
+ return yield* Effect.die(new Error(`effect-mq: schedule "${key}" has an invalid cron expression: "${options.cron}"`));
218
+ }
219
+ const payload = self.payloadSchema.make(options.payload);
220
+ const encoded = yield* Schema.encodeEffect(self.payloadJsonSchema)(payload).pipe(Effect.orDie);
221
+ const scheduleKey = ScheduleKey(`${self._tag}/${key}`);
222
+ const record = {
223
+ key: scheduleKey,
224
+ jobName: self._tag,
225
+ queue: self.queue,
226
+ cron: options.cron,
227
+ tz: options.tz,
228
+ everyMs,
229
+ payload: encoded,
230
+ metadata: { ...self.metadata?.(payload), ...options.metadata },
231
+ priority: options.priority ?? self.defaults.priority,
232
+ attemptsMax: Math.max(1, options.attempts ?? self.defaults.attempts),
233
+ backoff: options.backoff !== undefined
234
+ ? normalizeBackoff(options.backoff)
235
+ : self.defaults.backoff,
236
+ keep: options.keep !== undefined ? normalizeKeep(options.keep) : self.defaults.keep,
237
+ timeoutMs: options.timeout !== undefined
238
+ ? Duration.toMillis(options.timeout)
239
+ : self.defaults.timeoutMs,
240
+ nextRunAt
241
+ };
242
+ const store = yield* self.store;
243
+ yield* store.upsertSchedule(record).pipe(Effect.orDie);
244
+ return scheduleKey;
245
+ }).pipe(Effect.withSpan(`${this._tag}.schedule`, { attributes: { key } }, { captureStackTrace: false }));
246
+ },
247
+ unschedule(key) {
248
+ return Effect.flatMap(this.store, (store) => store.removeSchedule(ScheduleKey(`${this._tag}/${key}`)).pipe(Effect.orDie)).pipe(Effect.withSpan(`${this._tag}.unschedule`, { attributes: { key } }, { captureStackTrace: false }));
249
+ },
144
250
  toLayer(handler, options) {
145
251
  return Layer.effectDiscard(Effect.flatMap(Worker, (worker) => worker.register(this, handler, options)));
146
252
  }
@@ -152,6 +258,10 @@ const boundMethods = [
152
258
  "awaitResult",
153
259
  "execute",
154
260
  "retry",
261
+ "cancel",
262
+ "promote",
263
+ "schedule",
264
+ "unschedule",
155
265
  "toLayer"
156
266
  ];
157
267
  const makeProto = (options) => {
@@ -203,7 +313,9 @@ export const make = (name, options) => {
203
313
  errorSchema,
204
314
  exitSchema,
205
315
  idempotencyKey: options.idempotencyKey,
316
+ dedupe: options.dedupe,
206
317
  metadata: options.metadata,
318
+ retryable: options.retryable,
207
319
  defaults: {
208
320
  delayMs: options.defaults?.delay !== undefined
209
321
  ? Duration.toMillis(options.defaults.delay)
@@ -211,7 +323,10 @@ export const make = (name, options) => {
211
323
  priority: options.defaults?.priority ?? 0,
212
324
  attempts: Math.max(1, options.defaults?.attempts ?? 1),
213
325
  backoff: normalizeBackoff(options.defaults?.backoff),
214
- keep: normalizeKeep(options.defaults?.keep)
326
+ keep: normalizeKeep(options.defaults?.keep),
327
+ timeoutMs: options.defaults?.timeout !== undefined
328
+ ? Duration.toMillis(options.defaults.timeout)
329
+ : undefined
215
330
  }
216
331
  });
217
332
  };
package/dist/Job.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Job.js","sourceRoot":"","sources":["../src/Job.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Job.js","sourceRoot":"","sources":["../src/Job.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@
16
16
  *
17
17
  * @since 0.1.0
18
18
  */
19
- import { Brand, Context, type Effect, type Option } from "effect";
19
+ import { Brand, Context, Duration, type Effect, type Option } from "effect";
20
20
  /**
21
21
  * The identifier of an enqueued job. Produced by `enqueue` (either
22
22
  * store-assigned or derived from a custom id / idempotency key).
@@ -42,6 +42,18 @@ export type QueueName = Brand.Branded<string, "effect-mq/QueueName">;
42
42
  * @since 0.1.0
43
43
  */
44
44
  export declare const QueueName: Brand.Constructor<QueueName>;
45
+ /**
46
+ * The identifier of a repeatable-job schedule.
47
+ *
48
+ * @since 0.2.0
49
+ */
50
+ export type ScheduleKey = Brand.Branded<string, "effect-mq/ScheduleKey">;
51
+ /**
52
+ * Brand a raw string as a `ScheduleKey`.
53
+ *
54
+ * @since 0.2.0
55
+ */
56
+ export declare const ScheduleKey: Brand.Constructor<ScheduleKey>;
45
57
  /**
46
58
  * The lifecycle states of a job.
47
59
  *
@@ -52,7 +64,7 @@ export declare const QueueName: Brand.Constructor<QueueName>;
52
64
  *
53
65
  * @since 0.1.0
54
66
  */
55
- export type JobState = "waiting" | "delayed" | "active" | "completed" | "failed";
67
+ export type JobState = "waiting" | "delayed" | "active" | "completed" | "failed" | "cancelled";
56
68
  /**
57
69
  * Retry backoff policy, persisted on the job record so any worker can route
58
70
  * retries consistently. Delay for attempt `n` (1-based):
@@ -68,18 +80,65 @@ export interface BackoffPolicy {
68
80
  readonly factor?: number | undefined;
69
81
  }
70
82
  /**
71
- * Retention policy for terminal (completed/failed) jobs, persisted on the
72
- * record. Applied by the store after terminal acks, scoped to jobs with the
73
- * same name and state. Default (undefined) keeps records forever.
83
+ * Retention rule for one terminal state's records (per job name).
74
84
  *
75
- * @since 0.1.0
85
+ * @since 0.3.0
76
86
  */
77
- export interface KeepPolicy {
87
+ export interface KeepStatePolicy {
78
88
  /** Keep at most this many terminal records (per name + state). */
79
89
  readonly count?: number | undefined;
80
90
  /** Remove terminal records older than this many milliseconds. */
81
91
  readonly ageMs?: number | undefined;
82
92
  }
93
+ /**
94
+ * Retention policy persisted on the record, split by terminal state —
95
+ * completed jobs are usually noise, failed ones evidence. Applied by the
96
+ * store after terminal acks (scoped to jobs with the same name and state),
97
+ * and honoured by the store's periodic history sweep when one is configured.
98
+ * An absent state keeps its records until the store's `historyTtl` ceiling
99
+ * (forever without one). Producers accept a flat `{ count, age }` shorthand
100
+ * and normalize it to all three states before it reaches a driver.
101
+ *
102
+ * @since 0.1.0
103
+ */
104
+ export interface KeepPolicy {
105
+ readonly completed?: KeepStatePolicy | undefined;
106
+ readonly failed?: KeepStatePolicy | undefined;
107
+ readonly cancelled?: KeepStatePolicy | undefined;
108
+ }
109
+ /**
110
+ * The terminal states retention applies to.
111
+ *
112
+ * @since 0.3.0
113
+ */
114
+ export type TerminalState = "completed" | "failed" | "cancelled";
115
+ /**
116
+ * Store-level retention ceiling: one duration for all terminal states, or a
117
+ * per-state split (an absent state is never swept by the timer).
118
+ *
119
+ * @since 0.3.0
120
+ */
121
+ export type HistoryTtlInput = Duration.Input | {
122
+ readonly completed?: Duration.Input | undefined;
123
+ readonly failed?: Duration.Input | undefined;
124
+ readonly cancelled?: Duration.Input | undefined;
125
+ };
126
+ /**
127
+ * `HistoryTtlInput` normalized to milliseconds per terminal state.
128
+ *
129
+ * @since 0.3.0
130
+ */
131
+ export interface HistoryTtlByState {
132
+ readonly completed?: number | undefined;
133
+ readonly failed?: number | undefined;
134
+ readonly cancelled?: number | undefined;
135
+ }
136
+ /**
137
+ * Normalize a `HistoryTtlInput` to milliseconds per terminal state.
138
+ *
139
+ * @internal
140
+ */
141
+ export declare const normalizeHistoryTtl: (input: HistoryTtlInput) => HistoryTtlByState;
83
142
  /**
84
143
  * One run of a job, persisted so the full run history is durable and
85
144
  * inspectable — the storage-level analogue of `tapError` before a rerun,
@@ -95,7 +154,7 @@ export interface AttemptRecord {
95
154
  readonly startedAt: number | undefined;
96
155
  /** Ack/recovery time of this run (epoch millis). */
97
156
  readonly finishedAt: number;
98
- readonly outcome: "completed" | "retried" | "failed" | "stalled";
157
+ readonly outcome: "completed" | "retried" | "failed" | "stalled" | "cancelled";
99
158
  /** Schema-encoded `Exit`; undefined for `stalled`. */
100
159
  readonly exit: unknown;
101
160
  }
@@ -122,6 +181,15 @@ export interface JobRecord {
122
181
  readonly stalledCount: number;
123
182
  readonly backoff: BackoffPolicy | undefined;
124
183
  readonly keep: KeepPolicy | undefined;
184
+ /** Per-run execution time limit; the worker interrupts the handler past it. */
185
+ readonly timeoutMs: number | undefined;
186
+ /**
187
+ * Set by `cancel` on an active job; the owning worker interrupts the
188
+ * handler on its next heartbeat and acks `Cancelled`.
189
+ */
190
+ readonly cancelRequested: boolean;
191
+ /** The dedup key this job was enqueued under, if any (see `DedupePolicy`). */
192
+ readonly dedupeKey: string | undefined;
125
193
  /** Epoch millis before which the job must not be claimed. */
126
194
  readonly runAt: number;
127
195
  readonly enqueuedAt: number;
@@ -132,6 +200,35 @@ export interface JobRecord {
132
200
  /** Set when the store itself failed the job (e.g. exceeded stall limit). */
133
201
  readonly failedReason: string | undefined;
134
202
  }
203
+ /**
204
+ * Deduplication policy carried on an enqueue request, scoped per job name.
205
+ * Dedup NEVER changes the job id — ids come from the caller, the idempotency
206
+ * key, or the store's id generator; the dedup key is a separate value with
207
+ * its own lifecycle:
208
+ *
209
+ * - `{ key }` (no ttl): dedupe while the keyed job is pending (waiting,
210
+ * delayed, or active); a terminal keyed job frees the key.
211
+ * - `{ key, ttlMs }`: throttle — at most one job per key per window,
212
+ * regardless of the keyed job's completion.
213
+ * - `extend` (requires `ttlMs`): each deduplicated enqueue pushes the window
214
+ * out (debounce).
215
+ * - `replace`: while the keyed job is still *delayed*, the new enqueue's
216
+ * payload/metadata/priority/attempts/backoff/keep/timeout/delay replace the
217
+ * existing job's (id and ledger preserved), and a `ttlMs` window is
218
+ * re-armed from the replace; in every other state normal dedup applies.
219
+ *
220
+ * A deduplicated (or replaced) enqueue returns the keyed job's id with
221
+ * `duplicate: true`.
222
+ *
223
+ * @since 0.3.0
224
+ */
225
+ export interface DedupePolicy {
226
+ /** Non-empty; producers validate before the request reaches a driver. */
227
+ readonly key: string;
228
+ readonly ttlMs: number | undefined;
229
+ readonly extend: boolean;
230
+ readonly replace: boolean;
231
+ }
135
232
  /**
136
233
  * @since 0.1.0
137
234
  */
@@ -150,8 +247,25 @@ export interface EnqueueRequest {
150
247
  readonly attemptsMax: number;
151
248
  readonly backoff: BackoffPolicy | undefined;
152
249
  readonly keep: KeepPolicy | undefined;
250
+ readonly timeoutMs: number | undefined;
251
+ /** Deduplicate against other enqueues sharing `dedupe.key` (same name). */
252
+ readonly dedupe: DedupePolicy | undefined;
153
253
  readonly delayMs: number;
154
254
  }
255
+ /**
256
+ * Generator for store-assigned job ids, used when `EnqueueRequest.id` is
257
+ * undefined (custom ids and idempotency keys always win, and schedule tick
258
+ * ids stay slot-deterministic). May be effectful (e.g. draw from Effect's
259
+ * `Random`). The store retries a bounded number of times when a generated id
260
+ * collides with an existing job, then fails the enqueue with
261
+ * `JobStoreError` — generators must have enough entropy that collisions are
262
+ * pathological, not routine.
263
+ *
264
+ * @example `({ name }) => \`${name}_${ulid()}\``
265
+ *
266
+ * @since 0.2.0
267
+ */
268
+ export type IdGenerator = (request: EnqueueRequest) => string | Effect.Effect<string>;
155
269
  /**
156
270
  * @since 0.1.0
157
271
  */
@@ -206,6 +320,8 @@ export type AckOutcome = {
206
320
  } | {
207
321
  readonly _tag: "Fail";
208
322
  readonly exit: unknown;
323
+ } | {
324
+ readonly _tag: "Cancelled";
209
325
  };
210
326
  /**
211
327
  * Filters and pagination for `list`. Results are ordered newest-first
@@ -232,6 +348,43 @@ export interface ListResult {
232
348
  /** Present when more items may exist; pass back via `ListOptions.cursor`. */
233
349
  readonly cursor: string | undefined;
234
350
  }
351
+ /**
352
+ * A repeatable-job schedule as persisted by the store. Exactly one of `cron`
353
+ * (with optional IANA `tz`) or `everyMs` is set. The payload is stored
354
+ * schema-encoded, like job payloads. `nextRunAt` is maintained by the worker
355
+ * sweep via `advanceSchedule`; ticks enqueue with the deterministic id
356
+ * `sched/<key>/<slot>`, so concurrent sweepers dedup naturally.
357
+ *
358
+ * @since 0.2.0
359
+ */
360
+ export interface ScheduleRecord {
361
+ readonly key: ScheduleKey;
362
+ readonly jobName: string;
363
+ readonly queue: QueueName;
364
+ readonly cron: string | undefined;
365
+ readonly tz: string | undefined;
366
+ readonly everyMs: number | undefined;
367
+ readonly payload: unknown;
368
+ readonly metadata: Readonly<Record<string, string>>;
369
+ readonly priority: number;
370
+ readonly attemptsMax: number;
371
+ readonly backoff: BackoffPolicy | undefined;
372
+ readonly keep: KeepPolicy | undefined;
373
+ readonly timeoutMs: number | undefined;
374
+ /** Epoch millis of the next occurrence to enqueue. */
375
+ readonly nextRunAt: number;
376
+ }
377
+ /**
378
+ * Result of a heartbeat: locks that could not be extended (lost to stall
379
+ * recovery or another worker) and active jobs with a pending cancel request
380
+ * (the worker must interrupt them and ack `Cancelled`).
381
+ *
382
+ * @since 0.2.0
383
+ */
384
+ export interface ExtendLocksResult {
385
+ readonly lost: ReadonlyArray<JobId>;
386
+ readonly cancelRequested: ReadonlyArray<JobId>;
387
+ }
235
388
  declare const JobStoreError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
236
389
  readonly _tag: "JobStoreError";
237
390
  } & Readonly<A>;
@@ -251,6 +404,33 @@ export declare class JobStoreError extends JobStoreError_base<{
251
404
  * @since 0.1.0
252
405
  */
253
406
  export declare const isJobStoreError: (u: unknown) => u is JobStoreError;
407
+ /**
408
+ * Mark an error value as unrecoverable: when a handler fails with it, the
409
+ * worker skips the remaining retry budget and fails the job immediately. The
410
+ * error itself is returned unchanged, so typed error channels and schemas
411
+ * are unaffected. Also exported as `Job.unrecoverable`.
412
+ *
413
+ * Marking is identity-based, so it only works for object errors — a
414
+ * primitive (string/number) failure is returned unmarked and retries
415
+ * normally; use the definition-level `retryable` predicate for those.
416
+ *
417
+ * @since 0.2.0
418
+ */
419
+ export declare const unrecoverable: <E>(error: E) => E;
420
+ /**
421
+ * Whether `unrecoverable` marked this value.
422
+ *
423
+ * @internal
424
+ */
425
+ export declare const isMarkedUnrecoverable: (u: unknown) => boolean;
426
+ /**
427
+ * The next occurrence of a schedule strictly after `now`. `fromSlot` anchors
428
+ * `everyMs` schedules (occurrences stay on the `slot + k * every` grid).
429
+ * Returns undefined for an invalid cron expression.
430
+ *
431
+ * @internal
432
+ */
433
+ export declare const nextOccurrence: (schedule: Pick<ScheduleRecord, "cron" | "tz" | "everyMs">, fromSlot: number, now: number) => number | undefined;
254
434
  declare const LockLostError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
255
435
  readonly _tag: "LockLostError";
256
436
  } & Readonly<A>;
@@ -287,6 +467,44 @@ export declare class JobNotRetryableError extends JobNotRetryableError_base<{
287
467
  readonly state: JobState;
288
468
  }> {
289
469
  }
470
+ declare const JobNotCancellableError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
471
+ readonly _tag: "JobNotCancellableError";
472
+ } & Readonly<A>;
473
+ /**
474
+ * `cancel` was called on a job that is already terminal.
475
+ *
476
+ * @since 0.2.0
477
+ */
478
+ export declare class JobNotCancellableError extends JobNotCancellableError_base<{
479
+ readonly jobId: JobId;
480
+ readonly state: JobState;
481
+ }> {
482
+ }
483
+ declare const JobNotPromotableError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
484
+ readonly _tag: "JobNotPromotableError";
485
+ } & Readonly<A>;
486
+ /**
487
+ * `promote` was called on a job that is not in the `delayed` state.
488
+ *
489
+ * @since 0.2.0
490
+ */
491
+ export declare class JobNotPromotableError extends JobNotPromotableError_base<{
492
+ readonly jobId: JobId;
493
+ readonly state: JobState;
494
+ }> {
495
+ }
496
+ declare const JobCancelledError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
497
+ readonly _tag: "JobCancelledError";
498
+ } & Readonly<A>;
499
+ /**
500
+ * Raised (as a defect) by `awaitResult` when the awaited job was cancelled.
501
+ *
502
+ * @since 0.2.0
503
+ */
504
+ export declare class JobCancelledError extends JobCancelledError_base<{
505
+ readonly jobId: JobId;
506
+ }> {
507
+ }
290
508
  /**
291
509
  * The service shape every store implements.
292
510
  *
@@ -323,7 +541,7 @@ export interface Service {
323
541
  readonly extendLocks: (locks: ReadonlyArray<{
324
542
  readonly id: JobId;
325
543
  readonly token: string;
326
- }>, durationMs: number) => Effect.Effect<ReadonlyArray<JobId>, JobStoreError>;
544
+ }>, durationMs: number) => Effect.Effect<ExtendLocksResult, JobStoreError>;
327
545
  /**
328
546
  * Sweep active jobs whose lock has expired. Each recovered job gets
329
547
  * `stalledCount + 1` and a `stalled` ledger entry; jobs exceeding
@@ -354,6 +572,39 @@ export interface Service {
354
572
  * attempts ledger is preserved and keeps numbering monotonically.
355
573
  */
356
574
  readonly retry: (id: JobId) => Effect.Effect<void, JobStoreError | JobNotFoundError | JobNotRetryableError>;
575
+ /**
576
+ * Cancel a job. Waiting/delayed jobs become terminal (`cancelled`)
577
+ * immediately; active jobs get `cancelRequested` set, and the owning
578
+ * worker interrupts the handler on its next heartbeat. Terminal jobs fail
579
+ * with `JobNotCancellableError`.
580
+ */
581
+ readonly cancel: (id: JobId) => Effect.Effect<void, JobStoreError | JobNotFoundError | JobNotCancellableError>;
582
+ /** Move a delayed job to `waiting` now. */
583
+ readonly promote: (id: JobId) => Effect.Effect<void, JobStoreError | JobNotFoundError | JobNotPromotableError>;
584
+ /**
585
+ * Durably pause a queue: claims return `Empty` until `resume` (delayed
586
+ * jobs still promote to `waiting`, they just aren't handed out). Affects
587
+ * every worker on the store.
588
+ */
589
+ readonly pause: (queue: QueueName) => Effect.Effect<void, JobStoreError>;
590
+ /** Undo `pause` and wake idle workers. */
591
+ readonly resume: (queue: QueueName) => Effect.Effect<void, JobStoreError>;
592
+ readonly pausedQueues: () => Effect.Effect<ReadonlyArray<QueueName>, JobStoreError>;
593
+ /** Create or replace a repeatable-job schedule (keyed by `schedule.key`). */
594
+ readonly upsertSchedule: (schedule: ScheduleRecord) => Effect.Effect<void, JobStoreError>;
595
+ /** Remove a schedule. Returns false when the key does not exist. */
596
+ readonly removeSchedule: (key: ScheduleKey) => Effect.Effect<boolean, JobStoreError>;
597
+ readonly listSchedules: (options?: {
598
+ readonly jobName?: string | undefined;
599
+ readonly queue?: QueueName | undefined;
600
+ }) => Effect.Effect<ReadonlyArray<ScheduleRecord>, JobStoreError>;
601
+ /** Schedules whose `nextRunAt` is due (per the Effect `Clock`). */
602
+ readonly dueSchedules: () => Effect.Effect<ReadonlyArray<ScheduleRecord>, JobStoreError>;
603
+ /**
604
+ * Advance a schedule's `nextRunAt` from `expectedRunAt` to `nextRunAt`
605
+ * (conditional, so concurrent sweepers cannot regress it).
606
+ */
607
+ readonly advanceSchedule: (key: ScheduleKey, expectedRunAt: number, nextRunAt: number) => Effect.Effect<void, JobStoreError>;
357
608
  readonly counts: (queue?: QueueName) => Effect.Effect<Record<JobState, number>, JobStoreError>;
358
609
  /** Remove a job (and its ledger). Refuses (returns false) when active. */
359
610
  readonly remove: (id: JobId) => Effect.Effect<boolean, JobStoreError>;
@@ -1 +1 @@
1
- {"version":3,"file":"JobStore.d.ts","sourceRoot":"","sources":["../src/JobStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JobStore.d.ts","sourceRoot":"","sources":["../src/JobStore.ts"],"names":[],"mappings":"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"}