When a Worker is instantiated, the most common usage is to specify a process function.
Sometimes however, it is useful to be able to specify more than one function to process a job for a specific condition:
const worker =newWorker(
'queueName',
async job =>{
switch(job.name){
case'taskType1':{
awaitdoSomeLogic1();
break;
}
case'taskType2':{
awaitdoSomeLogic2();
break;
}
}
},
{ connection },
);
You could use a simple switch case to differentiate your logic, in this example we are using the job name.
This was a feature in the Bull package, but it creates a lot of confusion, so in order to provide an alternative, you can use this pattern. See #297 and #69 as reference