b6b345f245
- Refactor email verification and password reset utilities to use new email service. - Introduce email delivery queue and notification delivery model for better tracking. - Enhance file validation and storage services for improved security and ownership management. - Add cron job for cleaning inactive notifications with retention policy. - Update document worker to handle document generation and storage more efficiently. - Implement logging improvements in activity and log workers. - Create comprehensive documentation for new API endpoints and services. - Add unit tests for file validation and notification policies to ensure robustness.
59 lines
1.2 KiB
JavaScript
59 lines
1.2 KiB
JavaScript
/**
|
|
* Copyright (c) 2026 Niolla
|
|
* All rights reserved.
|
|
*
|
|
* This source code is proprietary and confidential.
|
|
* Unauthorized copying, modification, distribution, or use
|
|
* of this file, via any medium, is strictly prohibited.
|
|
*/
|
|
|
|
// app/queues/document.queue.js
|
|
|
|
const { Queue } = require("bullmq");
|
|
const redis = require("../config/redisClient");
|
|
|
|
const documentQueue = new Queue("document-generation", {
|
|
connection: redis,
|
|
defaultJobOptions: {
|
|
attempts: 3,
|
|
|
|
backoff: {
|
|
type: "exponential",
|
|
delay: 2000,
|
|
},
|
|
|
|
removeOnComplete: {
|
|
age: 3600,
|
|
count: 1000,
|
|
},
|
|
|
|
removeOnFail: { age: 604800, count: 5000 },
|
|
},
|
|
});
|
|
|
|
// Event listeners
|
|
documentQueue.on("error", (err) => {
|
|
console.error("Document Queue Error:", err);
|
|
});
|
|
|
|
documentQueue.on("waiting", (job) => {
|
|
console.log(`Document Job ${job.id} waiting...`);
|
|
});
|
|
|
|
documentQueue.on("active", (job) => {
|
|
console.log(`Document Job ${job.id} started...`);
|
|
});
|
|
|
|
documentQueue.on("completed", (job) => {
|
|
console.log(`Document Job ${job.id} completed`);
|
|
});
|
|
|
|
documentQueue.on("failed", (job, err) => {
|
|
console.error(
|
|
`Document Job ${job.id} failed:`,
|
|
err.message
|
|
);
|
|
});
|
|
|
|
module.exports = documentQueue;
|