@penkov/tasks_queue
Version:
A lightweight PostgreSQL-backed task queue system with scheduling, retries, backoff strategies, and priority handling. Designed for efficiency and observability in modern Node.js applications.
23 lines (22 loc) • 1.02 kB
TypeScript
import { TasksQueueDao } from "./tasks-queue.dao.js";
import { SchedulePeriodicTaskDetails, ScheduleTaskDetails } from "./tasks-model.js";
import { TasksWorker } from "./tasks-worker.js";
import { ManageTasksQueueService } from "./manage-tasks-queue.service.js";
export interface TasksQueueConfig {
concurrency: number;
runAuxiliaryWorker: boolean;
loopInterval: number;
}
export declare class TasksQueueService {
private readonly tasksQueueDao;
private readonly worker;
private readonly auxiliaryWorker;
constructor(tasksQueueDao: TasksQueueDao, manageTasksQueueService: ManageTasksQueueService, config: TasksQueueConfig);
schedule(task: ScheduleTaskDetails): Promise<void>;
scheduleAtFixedRate(task: SchedulePeriodicTaskDetails): Promise<void>;
scheduleAtFixedDelay(task: SchedulePeriodicTaskDetails): Promise<void>;
taskScheduled(queueName: string): void;
registerWorker(queueName: string, worker: TasksWorker): void;
start(): void;
stop(): Promise<void>;
}