aboutsummaryrefslogtreecommitdiffstats
path: root/packages/shared/queueing.ts
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--packages/shared/queueing.ts16
1 files changed, 16 insertions, 0 deletions
diff --git a/packages/shared/queueing.ts b/packages/shared/queueing.ts
index 0dd6ed6b..d1f4bcef 100644
--- a/packages/shared/queueing.ts
+++ b/packages/shared/queueing.ts
@@ -2,6 +2,21 @@ import { ZodType } from "zod";
import { PluginManager, PluginType } from "./plugins";
+/**
+ * Special error that indicates a job should be retried after a delay
+ * without counting against the retry attempts limit.
+ * Useful for handling rate limiting scenarios.
+ */
+export class QueueRetryAfterError extends Error {
+ constructor(
+ message: string,
+ public readonly delayMs: number,
+ ) {
+ super(message);
+ this.name = "QueueRetryAfterError";
+ }
+}
+
export interface EnqueueOptions {
idempotencyKey?: string;
priority?: number;
@@ -48,6 +63,7 @@ export interface RunnerOptions<T> {
export interface Queue<T> {
opts: QueueOptions;
+ ensureInit(): Promise<void>;
name(): string;
enqueue(payload: T, options?: EnqueueOptions): Promise<string | undefined>;
stats(): Promise<{