53 lines
1.7 KiB
JavaScript
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);
|
|
});
|