@5minds/processcube_engine
Version:
The ProcessCube Engine. Stores and executes BPMNs.
39 lines (38 loc) • 1.82 kB
TypeScript
import { Cronjob, CronjobEnabledChangedMessage } from '@5minds/processcube_engine_sdk';
import { ProcessDefinitionMediator, ProcessInstanceDatabaseAdapter } from '../Tools';
import { CronjobDatabaseAdapter } from '../Tools/DatabaseAdaptersSequelize/index';
import { IdentityService } from '../Tools/Iam/index';
import { ExecuteProcessService } from './ExecuteProcessService';
import { TimerFacade } from './Facades/index';
export declare class CronjobService {
private readonly executeProcessService;
private readonly logger;
private readonly cronjobAdapter;
private readonly processDefinitionMediator;
private readonly processInstanceAdapter;
private readonly timerFacade;
private cronjobDictionary;
private internalIdentity;
private serviceIsRunning;
private notificationSubscriptions;
constructor(cronjobAdapter: CronjobDatabaseAdapter, executeProcessService: ExecuteProcessService, identityService: IdentityService, processDefinitionMediator: ProcessDefinitionMediator, processInstanceAdapter: ProcessInstanceDatabaseAdapter, timerFacade: TimerFacade);
get isRunning(): boolean;
start(): Promise<void>;
dispose(): void;
stop(): void;
updateCronjobs(deployedProcessDefinitionIds: Array<string>, cronjobMap: {
[proessDefinitionId: string]: Array<Cronjob>;
}): Promise<void>;
updateCronjob(options: CronjobEnabledChangedMessage): Promise<void>;
removeCronjobsByProcessDefinition(processDefinitionId: string): Promise<void>;
private initializeCronjob;
private isValidCrontab;
private executeProcessModelWithCronjob;
private stopCronjobs;
private stopCronjob;
private getEventMessage;
private removeSubscription;
private onProcessDeployed;
private onProcessUndeployed;
private createSubscription;
}