node.js - 如何从 bull js 中删除延迟的工作?

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

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

  myQueue.add(someRandomData, options);

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

最佳答案

首先,在添加队列时提供作业 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();

https://stackoverflow.com/questions/67378770/

相关文章:

flutter - 类型错误 : Cannot read property 'isSupported

r - 如何将经过训练和测试的随机森林模型应用于 tidymodels 中的新数据集?

r - 为什么带有字符语句的 ifelse 不起作用?

arrays - 将字符串添加到空数组给出 `NAN`

swift - 类名可以与 Swift 中的协议(protocol)名相同吗?

amazon-ec2 - Tensorflow 安装在 AWS ec2 实例上终止

r - 将一个表除以另一个,匹配索引

flutter - Flutter Bloc 依赖项的多个监听器 - 接收先前的状态

assembly - 为什么我们在引导加载程序的开头需要 ORG 0x7c00?

c++ - 指向结构成员?