File size: 887 Bytes
1d7d958
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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>;
}