import { Injectable } from "@nestjs/common"; import { Queue } from "bullmq"; @Injectable() export class VariantsQueue { private queue: Queue; constructor() { const name = `${process.env.BULL_PREFIX || 'attachments'}:variants`; this.queue = new Queue(name, { connection: { url: process.env.REDIS_URL! } }); } enqueue(attachment_id: number, mime: string) { if (!mime.startsWith('image/')) return Promise.resolve(); return this.queue.add( 'generate', { attachment_id, mime }, { attempts: 3, backoff: { type: 'exponential', delay: 2000 } } ); } }