I am trying out add queue for several asynchronous requests. And I added few queues properly, but one issue is not clear to me, On adding new job by queuename.add(someDATA) the response is giving the job name "default"
Here you can replicate my code,
const Queue = require('bull');
const { s3Uploadv3SingleFile, s3Client } = require("../../Aws/s3.js");
const File = require('../../models/fileSchema.js');
const enumUploadVideoQueue = 'uploadVideoQueue'
const uploadVideoQueue = new Queue(enumUploadVideoQueue, {
redis: {
port: process.env.REDIS_PORT,
host: process.env.REDIS_HOST,
password: process.env.REDIS_PASSWORD
},
defaultJobOptions: {
removeOnComplete: true,
removeOnFail: false,
},
limiter: {
max: 10, // process a maximum of 10 jobs at a time
duration: 5000, // wait for 5 seconds before processing more jobs
},
})
uploadVideoQueue.process(async (job, done) => {
// ...logic for uploading video
});
module.exports = {
enumUploadVideoQueue,
uploadVideoQueue
}
in my video.controller.js
const fileInfo = {... }
const fileStream = req.file; // Access the file stream
// Process the file stream using Bull
const queueName = uploadVideoQueue.name;
console.log({queueName}); // uploadVideoQueue
const myJob = await uploadVideoQueue.add({ fileStream, fileInfo });
res.json({status: true, message: "Upload started", job: myJob})
but in response the job.name is default.
One more thing i tried, I tried to give the name to the queue again by const myJob = await uploadVideoQueue.add(enumUploadVideoQueue, { fileStream, fileInfo }); but it gives error like Implemented: A header you provided implies functionality that is not implemented
Bull version "^4.10.4",
Additional information Node: 18
