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
TypeScript
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>;
}