UNPKG

@net3/queuer

Version:

69 lines (68 loc) 3.31 kB
import { QueueConfiguration, QueueState, QueueUsage, QueueItem, QueueStatus } from './types'; /** * Central utility handling all queue storage and scheduling logic. * All data is persisted via the piece `context.store` (PROJECT scope). */ export declare class QueueManager { static getQueueConfiguration(context: any, queueId: string): Promise<QueueConfiguration | null>; /** * NOTE: Activepieces key-value store cannot list keys, so a full “list queues” * is not possible without maintaining an external index. Stub returns []. */ static listAllQueues(): Promise<QueueConfiguration[]>; static getQueueState(context: any, queueId: string): Promise<QueueState>; static getQueueUsage(context: any, queueId: string): Promise<QueueUsage>; static getQueueStatus(context: any, queueId: string): Promise<QueueStatus | null>; /** Check daily/hourly rate limits and return availability. */ static checkRateLimits(context: any, queueId: string): Promise<{ canSend: boolean; nextAvailableTime?: number; dailyRemaining?: number; hourlyRemaining?: number; }>; static calculateDelayMs(delayType: 'fixed' | 'random', delayUnit: 'seconds' | 'minutes' | 'hours' | 'days', delayValue?: number, delayMin?: number, delayMax?: number): number; static calculateItemDelay(context: any, queue: QueueConfiguration, limits: any): Promise<{ delayMs: number; limitDelay: number; activeHoursDelay: number; }>; static isWithinActiveHours(activeHours: any): boolean; static getNextActiveTime(activeHours: any): number; static getNextActiveWindow(activeHours: any): string; static addItemToQueue(context: any, queueId: string, targetAction: string, actionConfig: any, delayMs: number): Promise<{ queueItemId: string; releaseTime: number; }>; static getQueueItem(context: any, queueItemId: string): Promise<QueueItem | null>; static updateItemStatus(context: any, queueItemId: string, status: QueueItem['status'], error?: string): Promise<void>; static validateQueuePosition(context: any, queueItemId: string): Promise<{ isValid: boolean; shouldRepause: boolean; newReleaseTime?: number; reason?: string; }>; static checkIfNextInQueue(context: any, currentItem: QueueItem): Promise<boolean>; static markExecutionComplete(context: any, queueId: string, queueItemId: string): Promise<void>; static cleanupQueueItem(context: any, queueId: string, queueItemId: string, releaseTime: number): Promise<void>; static incrementUsageCounters(context: any, queueId: string): Promise<void>; /** * Get all items in a queue with their details */ static listQueueItems(context: any, queueId: string): Promise<QueueItem[]>; /** * Clear all items from a queue */ static clearQueue(context: any, queueId: string): Promise<{ clearedCount: number; queueId: string; }>; /** * Get complete queue information including configuration and status */ static getQueueDetails(context: any, queueId: string): Promise<{ configuration: QueueConfiguration | null; status: QueueStatus | null; state: QueueState; usage: QueueUsage; }>; }