UNPKG

koatty_schedule

Version:
1 lines 103 kB
{"version":3,"sources":["../src/config/config.ts","../src/locker/interface.ts","../src/locker/redis-factory.ts","../src/locker/redlock.ts","../src/utils/lib.ts","../src/decorator/redlock.ts","../src/process/locker.ts","../src/decorator/scheduled.ts","../src/process/schedule.ts","../src/index.ts"],"names":["validateCronExpression","cron","Error","cronParts","trim","split","length","hasSecs","offset","seconds","minutes","hours","dayOfMonth","month","dayOfWeek","validateCronField","field","min","max","fieldName","fieldNameCN","allowedStrings","some","str","toUpperCase","includes","range","step","stepValue","parseInt","isNaN","start","end","startValue","endValue","values","value","numValue","validateRedLockMethodOptions","options","lockTimeOut","undefined","clockDriftFactor","maxRetries","retryDelayMs","validateRedLockOptions","retryCount","retryDelay","retryJitter","setGlobalScheduledOptions","globalScheduledOptions","getGlobalScheduledOptions","getEffectiveTimezone","userTimezone","timezone","getEffectiveRedLockOptions","methodOptions","globalOptions","COMPONENT_SCHEDULED","COMPONENT_REDLOCK","DecoratorType","RedisMode","RedisClientAdapter","RedisFactory","client","status","call","command","args","set","key","mode","duration","get","del","keys","exists","eval","script","numKeys","quit","disconnect","getClient","createClient","config","STANDALONE","logger","Debug","createStandaloneClient","SENTINEL","createSentinelClient","CLUSTER","createClusterClient","host","port","password","db","keyPrefix","connectTimeout","commandTimeout","maxRetriesPerRequest","retryStrategy","times","delay","Math","reconnectOnError","err","Warn","message","Redis","on","Info","name","sentinels","sentinelPassword","nodes","clusterOptions","redisOptions","clusterRetryStrategy","cluster","Cluster","address","validateConfig","validateStandaloneConfig","validateSentinelConfig","validateClusterConfig","defaultRedLockConfig","defaultRedlockSettings","RedLocker","redisConfig","driftFactor","automaticExtensionThreshold","instance","instanceLock","redlock","redisClient","isInitialized","initializationPromise","registerInContainer","RedLockerClass","IOCContainer","saveClass","setExistingInstance","_error","getInstance","containerInstance","resetInstance","close","catch","initialize","performInitialization","error","existingRedis","underlyingClient","userSettings","redlockSettings","Redlock","acquire","resources","ttl","Array","isArray","lockTtl","prefixedResources","map","resource","join","lock","release","extend","extendedLock","isReady","getConfig","updateConfig","getContainerInfo","registered","identifier","healthCheck","redisStatus","details","initialized","redisMode","redlockReady","containerRegistered","timeoutPromise","ms","timeoutId","promise","Promise","resolve","reject","setTimeout","cancel","clearTimeout","wrappedPromise","fn","result","initRedLock","app","Helper","isFunction","once","isEmpty","redLocker","redLockerDescriptor","descriptor","method","configurable","enumerable","valueFunction","self","initialLock","lockTime","timeout","props","currentLock","remainingTime","maxExtensions","extensionCount","timeoutHandler","race","apply","extendError","releaseError","writable","lockOptions","generateLockName","configName","methodName","target","targetObj","getIdentifier","targetWithConstructor","className","RedLock","lockName","createDecorator","context","addInitializer","targetClass","componentType","getType","originalMethod","Lock","resolvedLockName","Object","getPrototypeOf","finalLockName","enhancedDescriptor","Scheduled","attachClassMetadata","SCHEDULED","initSchedule","injectSchedule","totalScheduled","componentList","listClass","component","classMetadata","getClassMetadata","id","scheduleData","targetMethod","taskName","tz","CronJob","then","SchedulerLock","defaultOptions","KoattyScheduled"],"mappings":"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","file":"index.mjs","sourcesContent":["/*\n * @Description: Configuration management for koatty_schedule\n * @Usage: \n * @Author: richen\n * @Date: 2024-01-17 15:30:00\n * @LastEditTime: 2024-01-17 16:30:00\n * @License: BSD (3-Clause)\n * @Copyright (c): <richenlin(at)gmail.com>\n */\n\nimport { RedLockOptions } from \"../locker/redlock\";\n\nexport const COMPONENT_SCHEDULED = 'COMPONENT_SCHEDULED';\nexport const COMPONENT_REDLOCK = 'COMPONENT_REDLOCK';\n\n/**\n * Scheduled global options interface\n */\nexport interface ScheduledOptions extends RedLockOptions {\n timezone?: string;\n}\n\n/**\n * RedLock method-level options (excluding Redis connection config)\n */\nexport interface RedLockMethodOptions {\n lockTimeOut?: number; // Lock timeout in milliseconds\n clockDriftFactor?: number; // Clock drift factor for lock timeout calculation\n maxRetries?: number; // Maximum number of retry attempts\n retryDelayMs?: number; // Delay between retry attempts in milliseconds\n}\n\n/**\n * RedLock decorator configuration \n */\nexport interface RedLockConfig {\n name?: string;\n options?: RedLockOptions;\n}\n\n/**\n * Decorator types supported by the system\n */\nexport enum DecoratorType {\n SCHEDULED = 'SCHEDULED',\n REDLOCK = 'REDLOCK'\n}\n\n/**\n * Validate cron expression format (supports both 5-part and 6-part formats)\n * \n * 6-part format: second minute hour day month weekday\n * 5-part format: minute hour day month weekday\n * \n * @param cron - Cron expression to validate\n * @throws {Error} When cron expression is invalid\n */\nexport function validateCronExpression(cron: string): void {\n if (!cron || typeof cron !== 'string') {\n throw new Error('Cron expression must be a non-empty string');\n }\n\n const cronParts = cron.trim().split(/\\s+/);\n \n // Cron expressions should have 5 or 6 parts (with or without seconds)\n if (cronParts.length < 5 || cronParts.length > 6) {\n throw new Error(`Invalid cron format. Expected 5 or 6 parts, got ${cronParts.length}`);\n }\n\n // Determine if this is a 6-part (with seconds) or 5-part expression\n const hasSecs = cronParts.length === 6;\n const offset = hasSecs ? 0 : -1;\n\n // Extract parts with proper indexing\n const seconds = hasSecs ? cronParts[0] : null;\n const minutes = cronParts[offset + 1];\n const hours = cronParts[offset + 2];\n const dayOfMonth = cronParts[offset + 3];\n const month = cronParts[offset + 4];\n const dayOfWeek = cronParts[offset + 5];\n\n // Validate seconds (0-59) if present\n if (seconds !== null) {\n validateCronField(seconds, 0, 59, 'seconds', '秒');\n }\n\n // Validate minutes (0-59)\n validateCronField(minutes, 0, 59, 'minutes', '分钟');\n\n // Validate hours (0-23)\n validateCronField(hours, 0, 23, 'hours', '小时');\n\n // Validate day of month (1-31)\n validateCronField(dayOfMonth, 1, 31, 'day of month', '日期');\n\n // Validate month (1-12 or JAN-DEC)\n validateCronField(month, 1, 12, 'month', '月份', ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC']);\n\n // Validate day of week (0-7 or SUN-SAT, where 0 and 7 both represent Sunday)\n validateCronField(dayOfWeek, 0, 7, 'day of week', '星期', ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']);\n}\n\n/**\n * Validate individual cron field\n * @param field - Field value to validate\n * @param min - Minimum allowed value\n * @param max - Maximum allowed value\n * @param fieldName - English field name for error messages\n * @param fieldNameCN - Chinese field name for error messages\n * @param allowedStrings - Optional array of allowed string values (e.g., month/weekday names)\n */\nfunction validateCronField(\n field: string,\n min: number,\n max: number,\n fieldName: string,\n fieldNameCN: string,\n allowedStrings?: string[]\n): void {\n // Allow wildcard\n if (field === '*') {\n return;\n }\n\n // Allow question mark (for day of month / day of week)\n if (field === '?') {\n return;\n }\n\n // Check for allowed string values (month/weekday names)\n if (allowedStrings && allowedStrings.some(str => field.toUpperCase().includes(str))) {\n return;\n }\n\n // Step values (e.g., */5, 0-30/5)\n if (field.includes('/')) {\n const [range, step] = field.split('/');\n const stepValue = parseInt(step);\n \n if (isNaN(stepValue) || stepValue <= 0) {\n throw new Error(`Invalid step value for ${fieldName}: ${step}`);\n }\n \n if (range !== '*') {\n validateCronField(range, min, max, fieldName, fieldNameCN, allowedStrings);\n }\n return;\n }\n\n // Range values (e.g., 1-5)\n if (field.includes('-')) {\n const [start, end] = field.split('-');\n const startValue = parseInt(start);\n const endValue = parseInt(end);\n \n if (isNaN(startValue) || startValue < min || startValue > max) {\n throw new Error(`Invalid range start for ${fieldName}: ${start}, must be between ${min}-${max}`);\n }\n \n if (isNaN(endValue) || endValue < min || endValue > max) {\n throw new Error(`Invalid range end for ${fieldName}: ${end}, must be between ${min}-${max}`);\n }\n \n if (startValue > endValue) {\n throw new Error(`Invalid range for ${fieldName}: ${start}-${end}, start cannot be greater than end`);\n }\n return;\n }\n\n // List values (e.g., 1,3,5)\n if (field.includes(',')) {\n const values = field.split(',');\n for (const value of values) {\n validateCronField(value.trim(), min, max, fieldName, fieldNameCN, allowedStrings);\n }\n return;\n }\n\n // Single numeric value\n const numValue = parseInt(field);\n if (isNaN(numValue) || numValue < min || numValue > max) {\n throw new Error(`Invalid ${fieldName} value: ${field}, must be between ${min}-${max}`);\n }\n}\n\n/**\n * Validate RedLock method-level options\n * @param options - RedLock method options to validate\n * @throws {Error} When options are invalid\n */\nexport function validateRedLockMethodOptions(options: RedLockMethodOptions): void {\n if (!options || typeof options !== 'object') {\n throw new Error('RedLock method options must be an object');\n }\n\n if (options.lockTimeOut !== undefined) {\n if (typeof options.lockTimeOut !== 'number' || options.lockTimeOut <= 0) {\n throw new Error('lockTimeOut must be a positive number');\n }\n }\n\n if (options.clockDriftFactor !== undefined) {\n if (typeof options.clockDriftFactor !== 'number' || options.clockDriftFactor < 0 || options.clockDriftFactor > 1) {\n throw new Error('clockDriftFactor must be a number between 0 and 1');\n }\n }\n\n if (options.maxRetries !== undefined) {\n if (typeof options.maxRetries !== 'number' || options.maxRetries < 0) {\n throw new Error('maxRetries must be a non-negative number');\n }\n }\n\n if (options.retryDelayMs !== undefined) {\n if (typeof options.retryDelayMs !== 'number' || options.retryDelayMs < 0) {\n throw new Error('retryDelayMs must be a non-negative number');\n }\n }\n}\n\n/**\n * Validate RedLock options\n * @param options - RedLock options to validate\n * @throws {Error} When options are invalid\n */\nexport function validateRedLockOptions(options: RedLockOptions): void {\n if (!options || typeof options !== 'object') {\n throw new Error('RedLock options must be an object');\n }\n\n if (options.lockTimeOut !== undefined) {\n if (typeof options.lockTimeOut !== 'number' || options.lockTimeOut <= 0) {\n thr