UNPKG

@hotmeshio/hotmesh

Version:

Serverless Workflow

37 lines (36 loc) 2.06 kB
/// <reference types="node" /> import { ILogger } from '../logger'; import { StoreService } from '../store'; import { HookInterface, HookRule } from '../../types/hook'; import { JobCompletionOptions, JobState } from '../../types/job'; import { ProviderClient, ProviderTransaction } from '../../types/provider'; import { WorkListTaskType } from '../../types/task'; declare class TaskService { store: StoreService<ProviderClient, ProviderTransaction>; logger: ILogger; cleanupTimeout: NodeJS.Timeout | null; isScout: boolean; errorCount: number; constructor(store: StoreService<ProviderClient, ProviderTransaction>, logger: ILogger); processWebHooks(hookEventCallback: HookInterface): Promise<void>; enqueueWorkItems(keys: string[]): Promise<void>; registerJobForCleanup(jobId: string, inSeconds: number, options: JobCompletionOptions): Promise<void>; registerTimeHook(jobId: string, gId: string, activityId: string, type: WorkListTaskType, inSeconds: number, dad: string, transaction?: ProviderTransaction): Promise<void>; /** * Should this engine instance play the role of 'scout' on behalf * of the entire quorum? The scout role is responsible for processing * task lists on behalf of the collective. */ shouldScout(): Promise<boolean>; /** * Callback handler that takes an item from a work list and * processes according to its type */ processTimeHooks(timeEventCallback: (jobId: string, gId: string, activityId: string, type: WorkListTaskType) => Promise<void>, listKey?: string): Promise<void>; cancelCleanup(): void; getHookRule(topic: string): Promise<HookRule | undefined>; registerWebHook(topic: string, context: JobState, dad: string, expire: number, transaction?: ProviderTransaction): Promise<string>; processWebHookSignal(topic: string, data: Record<string, unknown>): Promise<[string, string, string, string] | undefined>; deleteWebHookSignal(topic: string, data: Record<string, unknown>): Promise<number>; } export { TaskService };