/** * PM ver4.0 - Redis convert-pdf 큐 전체 초기화 스크립트 * * 이 스크립트는 Redis에 쌓여있는 'convert-pdf' 대기열의 모든 작업(대기 중, 실패 등)을 제거합니다. * * [실행 방법] * node local_clear_queue.js */ const { Queue } = require('bullmq'); const Redis = require('ioredis'); require('dotenv').config(); console.log('Redis Host:', process.env.REDIS_HOST || 'localhost'); console.log('Redis Port:', process.env.REDIS_PORT || 6379); const connection = new Redis({ host: process.env.REDIS_HOST || 'localhost', port: +(process.env.REDIS_PORT || 6379), maxRetriesPerRequest: null, password: process.env.REDIS_PASSWORD || undefined }); connection.on('connect', async () => { console.log('✔️ Connected to Redis. Clearing queue...'); try { const queueName = 'convert-pdf'; const queue = new Queue(queueName, { connection }); // 대기 중인 작업 모두 제거 (drain) await queue.drain(); console.log(`🧹 ${queueName} 큐의 대기 중인 모든 작업을 제거했습니다.`); // 완료/실패 작업도 청소 await queue.clean(0, 0, 'completed'); await queue.clean(0, 0, 'failed'); console.log('🧹 완료 및 실패 내역을 청소했습니다.'); const counts = await queue.getJobCounts(); console.log('\n--- 현재 큐 상태 ---'); console.log(JSON.stringify(counts, null, 2)); } catch (err) { console.error('❌ 에러 발생:', err); } finally { connection.disconnect(); } }); connection.on('error', (err) => { console.error('❌ Redis Connection Error:', err); });