1

我是 Bull 的新手,我的用例是在 10 秒后运行作业,为此,我使用以下代码

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

  myQueue.add(someRandomData, options);

将其添加到队列后,现在在几秒后让我们说 4 秒,我想从队列中删除作业,因为由于某些条件不再需要它,我该如何实现它。我知道有job.remove()。但是如何将它用于给定的jobId。有人可以帮我吗。

4

2 回答 2

4

首先,在添加队列时提供作业 ID。

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

如果要删除作业,请通过 id 抓取它,它已注册。

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

于 2021-07-08T20:50:25.283 回答
0

要自动执行此操作,您可以通过这种方式进行设置: https ://github.com/OptimalBits/bull/blob/HEAD/REFERENCE.md#user-content-queueadd

假设你有一个队列和一些模型。

const jobOptions = {
        removeOnComplete: true,
        removeOnFail: true
    }
this.queue.add(model, jobOptions)
于 2021-10-17T14:01:05.310 回答