mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-18 02:26:21 +08:00
29 lines
602 B
TypeScript
29 lines
602 B
TypeScript
import type { Observable } from 'rxjs';
|
|
|
|
export interface JobParams<Payload = any> {
|
|
batchKey: string;
|
|
payload: Payload;
|
|
}
|
|
|
|
export interface Job<Payload = any> extends JobParams<Payload> {
|
|
id: string;
|
|
}
|
|
|
|
export interface JobQueueStatus {
|
|
remaining: number;
|
|
}
|
|
|
|
export interface JobQueue<Payload> {
|
|
enqueue(jobs: JobParams<Payload>[]): Promise<void>;
|
|
|
|
accept(): Promise<Job<Payload>[] | null>;
|
|
|
|
waitForAccept(signal: AbortSignal): Promise<Job<Payload>[]>;
|
|
|
|
return(jobs: Job<Payload>[], retry?: boolean): Promise<void>;
|
|
|
|
clear(): Promise<void>;
|
|
|
|
status$: Observable<JobQueueStatus>;
|
|
}
|