29 lines
1.0 KiB
JavaScript
29 lines
1.0 KiB
JavaScript
const { Queue } = require('bullmq');
|
|
const IORedis = require('ioredis');
|
|
|
|
// Cấu hình kết nối Redis (Mặc định localhost:6379)
|
|
const connection = new IORedis({
|
|
maxRetriesPerRequest: null
|
|
});
|
|
|
|
/**
|
|
* Khởi tạo hàng đợi xử lý ảnh
|
|
*/
|
|
const imageQueue = new Queue('image-processing', {
|
|
connection,
|
|
defaultJobOptions: {
|
|
attempts: 3, // Thử lại tối đa 3 lần nếu lỗi
|
|
backoff: { type: 'exponential', delay: 5000 },
|
|
// Tự động dọn dẹp Job để tối ưu bộ nhớ Redis
|
|
removeOnComplete: {
|
|
age: 1800, // Xóa các job hoàn thành sau 30 phút (1800 giây) để giải phóng RAM nhanh hơn
|
|
count: 50 // Chỉ giữ 50 job gần nhất (đủ để xem log gần đây)
|
|
},
|
|
removeOnFail: {
|
|
age: 12 * 3600, // Giữ lại job lỗi trong 12 giờ để admin kiểm tra
|
|
count: 100 // Giữ tối đa 100 job lỗi
|
|
}
|
|
}
|
|
});
|
|
|
|
module.exports = { imageQueue, connection }; |