@hotmeshio/hotmesh
Version:
Serverless Workflow
78 lines (77 loc) • 2.48 kB
TypeScript
/// <reference types="node" />
import { ILogger } from '../logger';
import { Router } from '../router';
import { StoreService } from '../store';
import { StreamService } from '../stream';
import { SubService } from '../sub';
import { HotMeshConfig, HotMeshWorker } from '../../types/hotmesh';
import { ProviderClient, ProviderTransaction } from '../../types/provider';
import { RollCallMessage, SubscriptionCallback } from '../../types/quorum';
import { StreamData, StreamDataResponse } from '../../types/stream';
declare class WorkerService {
namespace: string;
appId: string;
guid: string;
topic: string;
config: HotMeshConfig;
callback: (streamData: StreamData) => Promise<StreamDataResponse | void>;
store: StoreService<ProviderClient, ProviderTransaction> | null;
stream: StreamService<ProviderClient, ProviderTransaction> | null;
subscribe: SubService<ProviderClient> | null;
router: Router<typeof this.stream> | null;
logger: ILogger;
reporting: boolean;
inited: string;
rollCallInterval: NodeJS.Timeout;
/**
* @private
*/
constructor();
/**
* @private
*/
static init(namespace: string, appId: string, guid: string, config: HotMeshConfig, logger: ILogger): Promise<WorkerService[]>;
/**
* @private
*/
verifyWorkerFields(worker: HotMeshWorker): void;
/**
* @private
*/
initStoreChannel(service: WorkerService, store: ProviderClient): Promise<void>;
/**
* @private
*/
initSubChannel(service: WorkerService, sub: ProviderClient, store: ProviderClient): Promise<void>;
/**
* @private
*/
initStreamChannel(service: WorkerService, stream: ProviderClient, store: ProviderClient): Promise<void>;
/**
* @private
*/
initRouter(worker: HotMeshWorker, logger: ILogger): Promise<Router<StreamService<ProviderClient, ProviderTransaction>>>;
/**
* @private
*/
subscriptionHandler(): SubscriptionCallback;
/**
* A quorum-wide command to broadcaset system details.
*
*/
doRollCall(message: RollCallMessage): Promise<void>;
cancelRollCall(): void;
/**
* @private
*/
stop(): void;
/**
* @private
*/
sayPong(appId: string, guid: string, originator?: string, details?: boolean, signature?: boolean): Promise<void>;
/**
* @private
*/
throttle(delayInMillis: number): Promise<void>;
}
export { WorkerService };