UNPKG

n8n

Version:

n8n Workflow Automation Tool

96 lines (95 loc) 4.37 kB
import { LoadNodesAndCredentials } from '../load-nodes-and-credentials'; import { Logger } from '../logging/logger.service'; import { TaskRejectError } from './errors'; import type { N8nMessage, RunnerMessage, RequesterMessage, TaskResultData } from './runner-types'; export interface TaskRunner { id: string; name?: string; taskTypes: string[]; lastSeen: Date; } export interface Task { id: string; runnerId: TaskRunner['id']; requesterId: string; taskType: string; } export interface TaskOffer { offerId: string; runnerId: TaskRunner['id']; taskType: string; validFor: number; validUntil: bigint; } export interface TaskRequest { requestId: string; requesterId: string; taskType: string; acceptInProgress?: boolean; } export type MessageCallback = (message: N8nMessage.ToRunner.All) => Promise<void> | void; export type RequesterMessageCallback = (message: N8nMessage.ToRequester.All) => Promise<void> | void; type RunnerAcceptCallback = () => void; type TaskRejectCallback = (reason: TaskRejectError) => void; export declare class TaskBroker { private readonly logger; private readonly loadNodesAndCredentials; private knownRunners; private requesters; private tasks; private runnerAcceptRejects; private requesterAcceptRejects; private pendingTaskOffers; private pendingTaskRequests; constructor(logger: Logger, loadNodesAndCredentials: LoadNodesAndCredentials); updateNodeTypes: () => Promise<void>; expireTasks(): void; registerRunner(runner: TaskRunner, messageCallback: MessageCallback): void; deregisterRunner(runnerId: string): void; registerRequester(requesterId: string, messageCallback: RequesterMessageCallback): void; deregisterRequester(requesterId: string): void; private messageRunner; private messageAllRunners; private messageRequester; onRunnerMessage(runnerId: TaskRunner['id'], message: RunnerMessage.ToN8n.All): Promise<void>; handleRpcRequest(taskId: Task['id'], callId: string, name: RunnerMessage.ToN8n.RPC['name'], params: unknown[]): Promise<void>; handleRunnerAccept(taskId: Task['id']): void; handleRunnerReject(taskId: Task['id'], reason: string): void; handleDataRequest(taskId: Task['id'], requestId: RunnerMessage.ToN8n.TaskDataRequest['requestId'], requestType: RunnerMessage.ToN8n.TaskDataRequest['requestType'], param?: string): Promise<void>; handleResponse(taskId: Task['id'], requestId: RunnerMessage.ToN8n.TaskDataRequest['requestId'], data: unknown): Promise<void>; onRequesterMessage(requesterId: string, message: RequesterMessage.ToN8n.All): Promise<void>; handleRequesterRpcResponse(taskId: string, callId: string, status: RequesterMessage.ToN8n.RPCResponse['status'], data: unknown): Promise<void>; handleRequesterDataResponse(taskId: Task['id'], requestId: string, data: unknown): Promise<void>; handleRequesterAccept(taskId: Task['id'], settings: RequesterMessage.ToN8n.TaskSettings['settings']): void; handleRequesterReject(taskId: Task['id'], reason: string): void; private cancelTask; private failTask; private getRunnerOrFailTask; sendTaskSettings(taskId: Task['id'], settings: unknown): Promise<void>; taskDoneHandler(taskId: Task['id'], data: TaskResultData): Promise<void>; taskErrorHandler(taskId: Task['id'], error: unknown): Promise<void>; acceptOffer(offer: TaskOffer, request: TaskRequest): Promise<void>; settleTasks(): void; taskRequested(request: TaskRequest): void; taskOffered(offer: TaskOffer): void; getTasks(): Map<string, Task>; getPendingTaskOffers(): TaskOffer[]; getPendingTaskRequests(): TaskRequest[]; getKnownRunners(): Map<string, { runner: TaskRunner; messageCallback: MessageCallback; }>; getKnownRequesters(): Map<string, RequesterMessageCallback>; getRunnerAcceptRejects(): Map<string, { accept: RunnerAcceptCallback; reject: TaskRejectCallback; }>; setTasks(tasks: Record<string, Task>): void; setPendingTaskOffers(pendingTaskOffers: TaskOffer[]): void; setPendingTaskRequests(pendingTaskRequests: TaskRequest[]): void; setRunnerAcceptRejects(runnerAcceptRejects: Record<string, { accept: RunnerAcceptCallback; reject: TaskRejectCallback; }>): void; } export {};