test / src /types /websocket.types.ts
bipulsardar's picture
feat: Include hardcoded dataset attributes (image,type,text,x1,y1,x2,y2) in every request/response
4aafa95
Raw History Blame Contribute Delete
2.89 kB
import { WorkerPlatform, WorkerSpecs } from './worker.types';
export type WorkerMessageType =
| 'register'
| 'request_task'
| 'heartbeat'
| 'progress'
| 'task_completed'
| 'task_failed'
| 'disconnect';
export type ServerMessageType =
| 'registered'
| 'task_assignment'
| 'wait'
| 'retry'
| 'shutdown'
| 'error';
// Worker Incoming Messages
export interface RegisterMessage {
type: 'register';
payload: {
workerId?: string;
workerName: string;
platform: WorkerPlatform;
specs?: WorkerSpecs;
};
}
export interface RequestTaskMessage {
type: 'request_task';
payload: {
workerId: string;
};
}
export interface HeartbeatMessage {
type: 'heartbeat';
payload: {
workerId: string;
taskId?: string;
progress?: number;
rowsProcessed?: number;
currentSpeed?: number;
};
}
export interface ProgressMessage {
type: 'progress';
payload: {
workerId: string;
taskId: string;
progress: number;
rowsProcessed?: number;
currentSpeed?: number;
};
}
export interface TaskCompletedMessage {
type: 'task_completed';
payload: {
workerId: string;
taskId: string;
rowsProcessed?: number;
executionTimeMs?: number;
resultSummary?: any;
};
}
export interface TaskFailedMessage {
type: 'task_failed';
payload: {
workerId: string;
taskId: string;
error: string;
canRetry?: boolean;
};
}
export interface DisconnectMessage {
type: 'disconnect';
payload: {
workerId: string;
reason?: string;
};
}
export type IncomingWorkerMessage =
| RegisterMessage
| RequestTaskMessage
| HeartbeatMessage
| ProgressMessage
| TaskCompletedMessage
| TaskFailedMessage
| DisconnectMessage;
// Server Outgoing Messages
export interface RegisteredServerMessage {
type: 'registered';
payload: {
workerId: string;
heartbeatIntervalSeconds: number;
leaseDurationSeconds: number;
};
}
export interface TaskAssignmentServerMessage {
type: 'task_assignment';
payload: {
taskId: string;
startRow: number;
endRow: number;
startOffset: number;
endOffset: number;
totalRows: number;
leaseUntil: string;
attributes: string[];
header: string;
};
}
export interface WaitServerMessage {
type: 'wait';
payload: {
reason: string;
retryInSeconds: number;
};
}
export interface RetryServerMessage {
type: 'retry';
payload: {
taskId: string;
reason: string;
};
}
export interface ShutdownServerMessage {
type: 'shutdown';
payload: {
reason: string;
};
}
export interface ErrorServerMessage {
type: 'error';
payload: {
code: string;
message: string;
};
}
export type OutgoingServerMessage =
| RegisteredServerMessage
| TaskAssignmentServerMessage
| WaitServerMessage
| RetryServerMessage
| ShutdownServerMessage
| ErrorServerMessage;