Files
agentic-dev/packages/core-shared/src/jobs/payload-job-queue.ts

21 lines
577 B
TypeScript

import type { Payload } from "payload";
import type { IJobQueue } from "./job-queue.interface";
export class PayloadJobQueue implements IJobQueue {
constructor(private readonly payload: Payload) {}
async enqueue<T>(
taskSlug: string,
input: T,
options?: { runAt?: Date },
): Promise<{ jobId: string }> {
const result = await this.payload.jobs.queue({
task: taskSlug,
input: input as never,
waitUntil: options?.runAt,
} as never);
const jobId = (result as { id: string | number }).id;
return { jobId: String(jobId) };
}
}