test / src /services /interfaces /IWorkerService.ts
bipulsardar's picture
23
1d7d958
Raw History Blame Contribute Delete
792 Bytes
import { IWorker, RegisterWorkerInput, WorkerStatus } from '../../types/worker.types';
export interface IWorkerService {
registerWorker(input: RegisterWorkerInput): Promise<IWorker>;
getWorker(workerId: string): Promise<IWorker | null>;
getAllWorkers(status?: WorkerStatus): Promise<IWorker[]>;
recordHeartbeat(workerId: string, currentTaskId?: string, rowsProcessed?: number, currentSpeed?: number): Promise<IWorker | null>;
setWorkerStatus(workerId: string, status: WorkerStatus, currentTaskId?: string | null): Promise<IWorker | null>;
updateWorkerStats(workerId: string, completedIncrement: number, failedIncrement: number, rowsProcessedIncrement: number): Promise<void>;
markStaleWorkersOffline(): Promise<IWorker[]>;
removeWorker(workerId: string): Promise<boolean>;
}