aboutsummaryrefslogtreecommitdiffstats
path: root/packages/shared/queueing.ts
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2025-11-09 20:13:39 +0000
committerMohamed Bassem <me@mbassem.com>2025-11-09 20:13:39 +0000
commitb28cd03a4a5f95f429a1429a59319c8a9ac986f8 (patch)
treef8b6a50338675bd0073643b5ff31fe447795fad4 /packages/shared/queueing.ts
parent03161482b44bd67f6eafb3e3d51107811b638d4b (diff)
downloadkarakeep-b28cd03a4a5f95f429a1429a59319c8a9ac986f8.tar.zst
refactor: Allow runner functions to return results to onComplete
Diffstat (limited to 'packages/shared/queueing.ts')
-rw-r--r--packages/shared/queueing.ts10
1 files changed, 5 insertions, 5 deletions
diff --git a/packages/shared/queueing.ts b/packages/shared/queueing.ts
index e401972b..ed6759dd 100644
--- a/packages/shared/queueing.ts
+++ b/packages/shared/queueing.ts
@@ -32,9 +32,9 @@ export interface DequeuedJobError<T> {
numRetriesLeft: number;
}
-export interface RunnerFuncs<T> {
- run: (job: DequeuedJob<T>) => Promise<void>;
- onComplete?: (job: DequeuedJob<T>) => Promise<void>;
+export interface RunnerFuncs<T, R = void> {
+ run: (job: DequeuedJob<T>) => Promise<R>;
+ onComplete?: (job: DequeuedJob<T>, result: R) => Promise<void>;
onError?: (job: DequeuedJobError<T>) => Promise<void>;
}
@@ -68,9 +68,9 @@ export interface QueueClient {
prepare(): Promise<void>;
start(): Promise<void>;
createQueue<T>(name: string, options: QueueOptions): Queue<T>;
- createRunner<T>(
+ createRunner<T, R = void>(
queue: Queue<T>,
- funcs: RunnerFuncs<T>,
+ funcs: RunnerFuncs<T, R>,
opts: RunnerOptions<T>,
): Runner<T>;
shutdown?(): Promise<void>;