2

我正在使用 ioredis 作为我的工人的排队系统。

根据文档,BLPOP 采用任意数量的列表并从中弹出所需的项目。

我在这里遗漏了一些关于 redis/BLPOP 的重要细节吗?

任何帮助将不胜感激。

对于单个队列/列表,它完全完美。

这会阻止所有这些。

getMessage(callback) {
    return new Promise((resolve, reject) => {
      this.rclient.blpop(
        QUEUE_TYPES.INVOICE_QUEUE,
        QUEUE_TYPES.AUDIT_MUTATION_QUEUE,
        QUEUE_TYPES.AUDIT_QUEUE,
        QUEUE_TYPES.ERROR_QUEUE,
        1,
        (err, res) => {
          if (err) reject(err);
          else resolve(callback(err, res));
        },
      );
    });
  }

这很完美。

getMessage(callback) {
    return new Promise((resolve, reject) => {
      this.rclient.blpop(
        QUEUE_TYPES.INVOICE_QUEUE,
        1,
        (err, res) => {
          if (err) reject(err);
          else resolve(callback(err, res));
        },
      );
    });
  }
4

0 回答 0