'how to remove a delayed job from bull js?

I am new to Bull and my use case is to run a job after 10 sec, for that, I am using the below code

  const options = {
    delay: 10000, // in ms
    jobId: myCustomUUID,
  };

  myQueue.add(someRandomData, options);

after adding it to the queue, now after a few sec let's say 4 sec, i want to remove the job from the queue as it is no longer required due to some condition, how can I achieve it. I know there is job.remove(). but how to use it for a given jobId. can someone please help me with it.



Solution 1:[1]

first, give a job id when you are adding the queue.

  await promotionEndQueue.add(
          payload,
          {
            delay: delay,
            jobId: `${data.id}`,
          }
        );

if want to remove the job, grab it by the id, it was registered with.

// first find the job by Id
const job = await promotionEndQueue.getJob(data.id);
// then remove the job
await job?.remove();

Solution 2:[2]

to do that automatically you can setup on this way: https://github.com/OptimalBits/bull/blob/HEAD/REFERENCE.md#user-content-queueadd

Assuming you have a queue and some model.

const jobOptions = {
        removeOnComplete: true,
        removeOnFail: true
    }
this.queue.add(model, jobOptions)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 Emiliano Barboza