UNPKG

nodejs-cloud-taskmq

Version:

Node.js TypeScript library for integrating Google Cloud Tasks with MongoDB/Redis/Memory/Custom for a BullMQ-like queue system. Compatible with NestJS but framework-agnostic.

57 lines (56 loc) 1.65 kB
import { IStateStorageAdapter } from '../interfaces/storage-adapter.interface'; import { CloudTaskMQConfig, QueueConfig } from '../interfaces/config.interface'; import { AddTaskOptions, AddTaskResult } from '../interfaces/task.interface'; import { EventEmitter } from 'events'; /** * Producer service for adding tasks to queues */ export declare class ProducerService extends EventEmitter { private readonly config; private readonly storageAdapter; private client; private queueConfigs; private projectId; private location; private defaultProcessorUrl?; private rateLimiterService; constructor(config: CloudTaskMQConfig, storageAdapter: IStateStorageAdapter); /** * Initialize the producer service */ initialize(): Promise<void>; /** * Add a task to a queue */ addTask<T = any>(queueName: string, data: T, options?: AddTaskOptions): Promise<AddTaskResult>; /** * Add multiple tasks as a chain */ addChain<T = any>(queueName: string, tasks: Array<{ data: T; options?: AddTaskOptions; }>, chainOptions?: { id?: string; waitForPrevious?: boolean; }): Promise<AddTaskResult[]>; /** * Get queue configuration */ getQueueConfig(queueName: string): QueueConfig | undefined; /** * List all configured queues */ getQueues(): string[]; /** * Create missing queues in Google Cloud Tasks */ private createMissingQueues; /** * Create a Cloud Task */ private createCloudTask; /** * Close the producer service */ close(): Promise<void>; }