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