import { Task } from './taskbuffer.classes.task.js'; import * as plugins from './taskbuffer.plugins.js'; /** * constains all data for the final coordinator to actually make an informed decision */ export interface IDistributedDecisionInfoBasis { submitterRandomId: string; taskName: string; taskVersion: string; taskExecutionTime: number; taskExecutionTimeout: number; taskExecutionParallel: number; status: 'requesting' | 'gotRejected' | 'failed' | 'succeeded'; } export interface ITaskConsultationResult { considered: boolean; rank: string; reason: string; shouldTrigger: boolean; } export abstract class AbstractDistributedCoordinator { public abstract announceDistributedDecisionInfoBasis(infoBasisArg: IDistributedDecisionInfoBasis): Promise public abstract updateDistributedDevisionInfoBasis(infoBasisArg: IDistributedDecisionInfoBasis): Promise }