2026-03-08 18:25:09 +01:00
|
|
|
import { Queue } from "bullmq";
|
|
|
|
|
import { redisConnectionOpts } from "./connection.js";
|
2026-03-09 09:33:43 +01:00
|
|
|
import { logger } from "../lib/logger.js";
|
|
|
|
|
|
|
|
|
|
const log = logger.child({ component: "queues" });
|
2026-03-08 18:25:09 +01:00
|
|
|
|
|
|
|
|
export const mailQueue = new Queue("mail", { connection: redisConnectionOpts });
|
2026-03-09 09:33:43 +01:00
|
|
|
mailQueue.on("error", (err) => {
|
|
|
|
|
log.error({ queue: "mail", err: err.message }, "Queue error");
|
|
|
|
|
});
|
|
|
|
|
|
2026-03-09 19:50:33 +01:00
|
|
|
export const gamificationQueue = new Queue("gamification", {
|
|
|
|
|
connection: redisConnectionOpts,
|
|
|
|
|
defaultJobOptions: { attempts: 3, backoff: { type: "exponential", delay: 2000 } },
|
|
|
|
|
});
|
|
|
|
|
gamificationQueue.on("error", (err) => {
|
|
|
|
|
log.error({ queue: "gamification", err: err.message }, "Queue error");
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
log.info("Queues initialized");
|
2026-03-09 09:33:43 +01:00
|
|
|
|
2026-03-08 18:25:09 +01:00
|
|
|
export const queues: Record<string, Queue> = {
|
|
|
|
|
mail: mailQueue,
|
2026-03-09 19:50:33 +01:00
|
|
|
gamification: gamificationQueue,
|
2026-03-08 18:25:09 +01:00
|
|
|
};
|