test / src /services /interfaces /ITaskQueueService.ts
bipulsardar's picture
23
1d7d958
Raw History Blame Contribute Delete
887 Bytes
import { ITask, CreateTaskInput, TaskFilter, TaskStatus } from '../../types/task.types';
export interface ITaskQueueService {
createTask(input: CreateTaskInput): Promise<ITask>;
generateBatchTasks(totalRows: number, defaultChunkSize?: number): Promise<number>;
getTask(taskId: string): Promise<ITask | null>;
getTasks(filter?: TaskFilter): Promise<ITask[]>;
leaseNextTask(workerId: string, requestedChunkSize?: number): Promise<ITask | null>;
releaseTask(taskId: string, reason?: string): Promise<ITask | null>;
completeTask(taskId: string, rowsProcessed?: number): Promise<ITask | null>;
failTask(taskId: string, error: string, canRetry?: boolean): Promise<ITask | null>;
updateTaskProgress(taskId: string, progress: number, rowsProcessed?: number): Promise<ITask | null>;
getTaskCounts(): Promise<Record<TaskStatus, number>>;
resetAllTasks(): Promise<number>;
}