whatsapp-crm-common
Version:
Componentes compartidos para servicios de WhatsApp CRM - Common utilities and types for WhatsApp CRM system
82 lines • 2.53 kB
TypeScript
import { QueueName } from "../events/types/event-types";
/**
* Configuración específica para cada cola
*/
export interface QueueConfig {
/** Nombre de la cola */
name: string;
/** Configuraciones por defecto para los jobs */
defaultJobOptions: {
/** Número máximo de intentos */
attempts: number;
/** Configuración de backoff para reintentos */
backoff: {
type: "fixed" | "exponential";
delay: number;
};
/** TTL del job en ms */
ttl?: number;
/** Delay antes de procesar */
delay?: number;
/** Prioridad por defecto */
priority?: number;
};
/** Configuraciones del worker */
workerOptions: {
/** Número de trabajos concurrentes */
concurrency: number;
/** Configuración de rate limiting */
limiter?: {
/** Máximo número de jobs por período */
max: number;
/** Duración del período en ms */
duration: number;
};
/** Configuraciones avanzadas */
settings?: {
/** Tiempo máximo para procesar un job */
stalledInterval?: number;
/** Número máximo de jobs en stalled */
maxStalledCount?: number;
};
};
}
/**
* Configuraciones para todas las colas del sistema
*/
export declare const queueConfigs: Record<QueueName, QueueConfig>;
/**
* Configuración global de colas
*/
export declare const globalQueueConfig: {
/** Configuración de conexión Redis */
connection: {
/** Prefijo para las keys de las colas */
prefix: string;
};
/** Configuraciones de limpieza automática */
cleanup: {
/** Limpiar jobs completados después de X ms */
removeOnComplete: number;
/** Limpiar jobs fallidos después de X ms */
removeOnFail: number;
/** Intervalo de limpieza en ms */
cleanupInterval: number;
};
/** Configuraciones de monitoreo */
monitoring: {
/** Habilitar métricas */
enableMetrics: boolean;
/** Intervalo de reporte de métricas */
metricsInterval: number;
};
};
/**
* Obtiene la configuración para una cola específica
*/
export declare function getQueueConfig(queueName: QueueName): QueueConfig;
/**
* Obtiene todas las configuraciones de colas
*/
export declare function getAllQueueConfigs(): Record<QueueName, QueueConfig>;
//# sourceMappingURL=queue-config.d.ts.map