@cemusta/nestjs-pulse
Version:
The modern MongoDB-powered scheduling library pulse for NestJS
25 lines (24 loc) • 1.34 kB
TypeScript
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;
}