Files
PM_test/local_clear_queue.js
2026-06-15 16:10:05 +09:00

53 lines
1.7 KiB
JavaScript

/**
* 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);
});