UNPKG

@cemusta/nestjs-pulse

Version:

The modern MongoDB-powered scheduling library pulse for NestJS

25 lines (24 loc) 1.34 kB
import { BeforeApplicationShutdown, OnApplicationBootstrap } from '@nestjs/common'; import { ModuleRef } from '@nestjs/core'; import { Processor, PulseOnEventType, JobAttributesData } from '@pulsecron/pulse'; import { PulseModuleJobOptions } from '../decorators'; import { JobProcessorType } from '../enums'; import { DatabaseService } from './database.service'; export type EventListener = (...args: any[]) => void; export declare class PulseOrchestrator implements OnApplicationBootstrap, BeforeApplicationShutdown { private readonly moduleRef; private readonly database; private readonly logger; private readonly queues; constructor(moduleRef: ModuleRef, database: DatabaseService); onApplicationBootstrap(): Promise<void>; beforeApplicationShutdown(): Promise<void>; addQueue(queueName: string, queueToken: string, queueConfigToken: string): void; addJobProcessor(queueToken: string, processor: Processor<JobAttributesData> & Record<'_name', string>, options: PulseModuleJobOptions, type: JobProcessorType, useCallback: boolean): void; addEventListener(queueToken: string, listener: EventListener, eventName: PulseOnEventType, jobName?: string): void; private attachEventListeners; private defineJobProcessors; private scheduleJobs; private getQueue; private getQueueConfig; }