@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.
22 lines (21 loc) • 1.1 kB
TypeScript
import { TasksPool } from "./tasks-pool.js";
import { Option } from "scats";
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 declare const DEFAULT_POOL = "default";
export declare class TasksPoolsService {
private readonly dao;
private readonly pools;
private readonly queuesPool;
private readonly auxiliaryWorker;
constructor(dao: TasksQueueDao, manageTasksQueueService: ManageTasksQueueService, runAuxiliaryWorker: boolean, pools?: TasksPool[]);
start(): void;
stop(timeoutMs?: number): Promise<void>;
registerWorker(queueName: string, worker: TasksWorker, poolName?: string): void;
schedule(task: ScheduleTaskDetails): Promise<Option<number>>;
scheduleAtFixedRate(task: SchedulePeriodicTaskDetails): Promise<Option<number>>;
scheduleAtFixedDelay(task: SchedulePeriodicTaskDetails): Promise<Option<number>>;
private taskScheduled;
}