absurd-sdk 0.0.4 → 0.0.6
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/README.md +4 -12
- package/dist/cjs/index.js +222 -80
- package/dist/index.d.ts +133 -30
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +220 -79
- package/dist/index.js.map +1 -1
- package/package.json +14 -8
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Absurd SDK for TypeScript and JavaScript
|
|
3
3
|
*/
|
|
4
4
|
import * as pg from "pg";
|
|
5
|
+
export type Queryable = Pick<pg.Client, "query"> | Pick<pg.PoolClient, "query">;
|
|
5
6
|
export type JsonValue = string | number | boolean | null | JsonValue[] | {
|
|
6
7
|
[key: string]: JsonValue;
|
|
7
8
|
};
|
|
@@ -24,6 +25,7 @@ export interface SpawnOptions {
|
|
|
24
25
|
headers?: JsonObject;
|
|
25
26
|
queue?: string;
|
|
26
27
|
cancellation?: CancellationPolicy;
|
|
28
|
+
idempotencyKey?: string;
|
|
27
29
|
}
|
|
28
30
|
export interface ClaimedTask {
|
|
29
31
|
run_id: string;
|
|
@@ -46,13 +48,14 @@ export interface WorkerOptions {
|
|
|
46
48
|
onError?: (error: Error) => void;
|
|
47
49
|
fatalOnLeaseTimeout?: boolean;
|
|
48
50
|
}
|
|
49
|
-
|
|
51
|
+
interface Worker {
|
|
50
52
|
close(): Promise<void>;
|
|
51
53
|
}
|
|
52
|
-
interface SpawnResult {
|
|
54
|
+
export interface SpawnResult {
|
|
53
55
|
taskID: string;
|
|
54
56
|
runID: string;
|
|
55
57
|
attempt: number;
|
|
58
|
+
created: boolean;
|
|
56
59
|
}
|
|
57
60
|
export type TaskHandler<P = any, R = any> = (params: P, ctx: TaskContext) => Promise<R>;
|
|
58
61
|
/**
|
|
@@ -62,6 +65,13 @@ export type TaskHandler<P = any, R = any> = (params: P, ctx: TaskContext) => Pro
|
|
|
62
65
|
export declare class SuspendTask extends Error {
|
|
63
66
|
constructor();
|
|
64
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Internal exception that is thrown to cancel a run. As a user
|
|
70
|
+
* you should never see this exception.
|
|
71
|
+
*/
|
|
72
|
+
export declare class CancelledTask extends Error {
|
|
73
|
+
constructor();
|
|
74
|
+
}
|
|
65
75
|
/**
|
|
66
76
|
* This error is thrown when awaiting an event ran into a timeout.
|
|
67
77
|
*/
|
|
@@ -74,9 +84,22 @@ export interface TaskRegistrationOptions {
|
|
|
74
84
|
defaultMaxAttempts?: number;
|
|
75
85
|
defaultCancellation?: CancellationPolicy;
|
|
76
86
|
}
|
|
87
|
+
interface Log {
|
|
88
|
+
log(...args: any[]): void;
|
|
89
|
+
info(...args: any[]): void;
|
|
90
|
+
warn(...args: any[]): void;
|
|
91
|
+
error(...args: any[]): void;
|
|
92
|
+
}
|
|
93
|
+
export interface AbsurdOptions {
|
|
94
|
+
db?: pg.Pool | string;
|
|
95
|
+
queueName?: string;
|
|
96
|
+
defaultMaxAttempts?: number;
|
|
97
|
+
log?: Log;
|
|
98
|
+
}
|
|
77
99
|
export declare class TaskContext {
|
|
100
|
+
private readonly log;
|
|
78
101
|
readonly taskID: string;
|
|
79
|
-
private readonly
|
|
102
|
+
private readonly con;
|
|
80
103
|
private readonly queueName;
|
|
81
104
|
private readonly task;
|
|
82
105
|
private readonly checkpointCache;
|
|
@@ -84,28 +107,30 @@ export declare class TaskContext {
|
|
|
84
107
|
private stepNameCounter;
|
|
85
108
|
private constructor();
|
|
86
109
|
static create(args: {
|
|
110
|
+
log: Log;
|
|
87
111
|
taskID: string;
|
|
88
|
-
|
|
112
|
+
con: Queryable;
|
|
89
113
|
queueName: string;
|
|
90
114
|
task: ClaimedTask;
|
|
91
115
|
claimTimeout: number;
|
|
92
116
|
}): Promise<TaskContext>;
|
|
117
|
+
private queryWithCancelCheck;
|
|
93
118
|
/**
|
|
94
|
-
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
* must support `JSON.stringify`.
|
|
119
|
+
* Runs an idempotent step identified by name; caches and reuses its result across retries.
|
|
120
|
+
* @param name Unique checkpoint name for this step.
|
|
121
|
+
* @param fn Async function computing the step result (must be JSON-serializable).
|
|
98
122
|
*/
|
|
99
123
|
step<T>(name: string, fn: () => Promise<T>): Promise<T>;
|
|
100
124
|
/**
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
125
|
+
* Suspends the task until the given duration (seconds) elapses.
|
|
126
|
+
* @param stepName Checkpoint name for this wait.
|
|
127
|
+
* @param duration Duration to wait in seconds.
|
|
104
128
|
*/
|
|
105
129
|
sleepFor(stepName: string, duration: number): Promise<void>;
|
|
106
130
|
/**
|
|
107
|
-
*
|
|
108
|
-
*
|
|
131
|
+
* Suspends the task until the specified time.
|
|
132
|
+
* @param stepName Checkpoint name for this wait.
|
|
133
|
+
* @param wakeAt Absolute time when the task should resume.
|
|
109
134
|
*/
|
|
110
135
|
sleepUntil(stepName: string, wakeAt: Date): Promise<void>;
|
|
111
136
|
private getCheckpointName;
|
|
@@ -113,60 +138,138 @@ export declare class TaskContext {
|
|
|
113
138
|
private persistCheckpoint;
|
|
114
139
|
private scheduleRun;
|
|
115
140
|
/**
|
|
116
|
-
*
|
|
117
|
-
*
|
|
141
|
+
* Waits for an event by name and returns its payload; optionally sets a custom step name and timeout (seconds).
|
|
142
|
+
* @param eventName Event identifier to wait for.
|
|
143
|
+
* @param options.stepName Optional checkpoint name (defaults to $awaitEvent:<eventName>).
|
|
144
|
+
* @param options.timeout Optional timeout in seconds.
|
|
145
|
+
* @throws TimeoutError If the event is not received before the timeout.
|
|
118
146
|
*/
|
|
119
147
|
awaitEvent(eventName: string, options?: {
|
|
120
148
|
stepName?: string;
|
|
121
149
|
timeout?: number;
|
|
122
150
|
}): Promise<JsonValue>;
|
|
123
151
|
/**
|
|
124
|
-
*
|
|
152
|
+
* Extends the current run's lease by the given seconds (defaults to the original claim timeout).
|
|
153
|
+
* @param seconds Lease extension in seconds.
|
|
154
|
+
*/
|
|
155
|
+
heartbeat(seconds?: number): Promise<void>;
|
|
156
|
+
/**
|
|
157
|
+
* Emits an event to this task's queue with an optional payload.
|
|
158
|
+
* @param eventName Non-empty event name.
|
|
159
|
+
* @param payload Optional JSON-serializable payload.
|
|
125
160
|
*/
|
|
126
161
|
emitEvent(eventName: string, payload?: JsonValue): Promise<void>;
|
|
127
|
-
complete(result?: any): Promise<void>;
|
|
128
|
-
fail(err: unknown): Promise<void>;
|
|
129
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* The Absurd SDK Client.
|
|
165
|
+
*
|
|
166
|
+
* Instanciate this class and keep it around to interact with Absurd.
|
|
167
|
+
*/
|
|
130
168
|
export declare class Absurd {
|
|
131
|
-
private readonly
|
|
132
|
-
private
|
|
169
|
+
private readonly con;
|
|
170
|
+
private ownedPool;
|
|
133
171
|
private readonly queueName;
|
|
134
172
|
private readonly defaultMaxAttempts;
|
|
135
|
-
private
|
|
173
|
+
private registry;
|
|
174
|
+
private readonly log;
|
|
136
175
|
private worker;
|
|
137
|
-
constructor(
|
|
176
|
+
constructor(options?: AbsurdOptions | string | pg.Pool);
|
|
138
177
|
/**
|
|
139
|
-
*
|
|
178
|
+
* Returns a new client that uses the provided connection for queries; set owned=true to close it with close().
|
|
179
|
+
* @param con Connection to bind to.
|
|
180
|
+
* @param owned If true, the bound client will close this connection on close().
|
|
181
|
+
*/
|
|
182
|
+
bindToConnection(con: Queryable, owned?: boolean): Absurd;
|
|
183
|
+
/**
|
|
184
|
+
* Registers a task handler by name (optionally specifying queue, defaultMaxAttempts, and defaultCancellation).
|
|
185
|
+
* @param options.name Task name.
|
|
186
|
+
* @param options.queue Optional queue name (defaults to client queue).
|
|
187
|
+
* @param options.defaultMaxAttempts Optional default max attempts.
|
|
188
|
+
* @param options.defaultCancellation Optional default cancellation policy.
|
|
189
|
+
* @param handler Async task handler.
|
|
140
190
|
*/
|
|
141
191
|
registerTask<P = any, R = any>(options: TaskRegistrationOptions, handler: TaskHandler<P, R>): void;
|
|
192
|
+
/**
|
|
193
|
+
* Creates a queue (defaults to this client's queue).
|
|
194
|
+
* @param queueName Queue name to create.
|
|
195
|
+
*/
|
|
142
196
|
createQueue(queueName?: string): Promise<void>;
|
|
197
|
+
/**
|
|
198
|
+
* Drops a queue (defaults to this client's queue).
|
|
199
|
+
* @param queueName Queue name to drop.
|
|
200
|
+
*/
|
|
143
201
|
dropQueue(queueName?: string): Promise<void>;
|
|
202
|
+
/**
|
|
203
|
+
* Lists all queue names.
|
|
204
|
+
* @returns Array of queue names.
|
|
205
|
+
*/
|
|
144
206
|
listQueues(): Promise<Array<string>>;
|
|
145
207
|
/**
|
|
146
|
-
* Spawns a
|
|
208
|
+
* Spawns a task execution by enqueueing it for processing. The task will be picked up by a worker
|
|
209
|
+
* and executed with the provided parameters. Returns identifiers that can be used to track or cancel the task.
|
|
210
|
+
*
|
|
211
|
+
* For registered tasks, the queue and defaults are inferred from registration. For unregistered tasks,
|
|
212
|
+
* you must provide options.queue.
|
|
213
|
+
*
|
|
214
|
+
* @param taskName Name of the task to spawn (must be registered or provide options.queue).
|
|
215
|
+
* @param params JSON-serializable parameters passed to the task handler.
|
|
216
|
+
* @param options Configure queue, maxAttempts, retryStrategy, headers, and cancellation policies.
|
|
217
|
+
* @returns Object containing taskID (unique task identifier), runID (current attempt identifier), and attempt number.
|
|
218
|
+
* @throws Error If the task is unregistered without a queue, or if the queue mismatches registration.
|
|
147
219
|
*/
|
|
148
220
|
spawn<P = any>(taskName: string, params: P, options?: SpawnOptions): Promise<SpawnResult>;
|
|
149
221
|
/**
|
|
150
|
-
* Emits an event
|
|
222
|
+
* Emits an event with an optional payload on the specified or default queue.
|
|
223
|
+
* @param eventName Non-empty event name.
|
|
224
|
+
* @param payload Optional JSON-serializable payload.
|
|
225
|
+
* @param queueName Queue to emit to (defaults to this client's queue).
|
|
151
226
|
*/
|
|
152
227
|
emitEvent(eventName: string, payload?: JsonValue, queueName?: string): Promise<void>;
|
|
228
|
+
/**
|
|
229
|
+
* Cancels a task by ID on the specified or default queue; running tasks stop at the next checkpoint/heartbeat.
|
|
230
|
+
* @param taskID Task identifier to cancel.
|
|
231
|
+
* @param queueName Queue name (defaults to this client's queue).
|
|
232
|
+
*/
|
|
233
|
+
cancelTask(taskID: string, queueName?: string): Promise<void>;
|
|
153
234
|
claimTasks(options?: {
|
|
154
235
|
batchSize?: number;
|
|
155
236
|
claimTimeout?: number;
|
|
156
237
|
workerId?: string;
|
|
157
238
|
}): Promise<ClaimedTask[]>;
|
|
158
239
|
/**
|
|
159
|
-
*
|
|
160
|
-
*
|
|
240
|
+
* Claims up to batchSize tasks and processes them sequentially using the given workerId and claimTimeout.
|
|
241
|
+
* @param workerId Worker identifier.
|
|
242
|
+
* @param claimTimeout Lease duration in seconds.
|
|
243
|
+
* @param batchSize Maximum number of tasks to process.
|
|
244
|
+
* Note: For parallel processing, use startWorker().
|
|
161
245
|
*/
|
|
162
246
|
workBatch(workerId?: string, claimTimeout?: number, batchSize?: number): Promise<void>;
|
|
163
247
|
/**
|
|
164
|
-
* Starts a worker that continuously polls for
|
|
165
|
-
*
|
|
248
|
+
* Starts a background worker that continuously polls for and processes tasks from the queue.
|
|
249
|
+
* The worker will claim tasks up to the configured concurrency limit and process them in parallel.
|
|
250
|
+
*
|
|
251
|
+
* Tasks are claimed with a lease (claimTimeout) that prevents other workers from processing them.
|
|
252
|
+
* The lease is automatically extended when tasks write checkpoints or call heartbeat(). If a worker
|
|
253
|
+
* crashes or stops making progress, the lease expires and another worker can claim the task.
|
|
254
|
+
*
|
|
255
|
+
* @param options Configure worker behavior:
|
|
256
|
+
* - concurrency: Max parallel tasks (default: 1)
|
|
257
|
+
* - claimTimeout: Task lease duration in seconds (default: 120)
|
|
258
|
+
* - batchSize: Tasks to claim per poll (default: concurrency)
|
|
259
|
+
* - pollInterval: Seconds between polls when idle (default: 0.25)
|
|
260
|
+
* - workerId: Worker identifier for tracking (default: hostname:pid)
|
|
261
|
+
* - onError: Error handler called for execution failures
|
|
262
|
+
* - fatalOnLeaseTimeout: Terminate process if task exceeds 2x claimTimeout (default: true)
|
|
263
|
+
* @returns Worker instance with close() method for graceful shutdown.
|
|
166
264
|
*/
|
|
167
265
|
startWorker(options?: WorkerOptions): Promise<Worker>;
|
|
266
|
+
/**
|
|
267
|
+
* Stops any running worker and closes the underlying pool if owned.
|
|
268
|
+
*/
|
|
168
269
|
close(): Promise<void>;
|
|
169
|
-
|
|
270
|
+
executeTask(task: ClaimedTask, claimTimeout: number, options?: {
|
|
271
|
+
fatalOnLeaseTimeout?: boolean;
|
|
272
|
+
}): Promise<void>;
|
|
170
273
|
}
|
|
171
274
|
export {};
|
|
172
275
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAGzB,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AACjC,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,GAAG,aAAa,GAAG,MAAM,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|