bull arena要求向arena提供队列构造函数

ldxq2e6h  于 2021-06-08  发布在  Redis
关注(0)|答案(2)|浏览(450)

使用bull arena:“^3.2.2”版本。在启动 Jmeter 板时遇到此错误
typeerror:从3.0.0开始,bull arena要求向arena提供队列构造函数
我尝试使用队列示例作为参数,而不是队列名称,但没有成功。
源代码:

import Arena from "bull-arena";
import Bull from "bull";

const queuesConfig = [];
for (const queue in queues) {
  queuesConfig.push({
    name: queues[queue],
    hostId: "worker",
    redis: { url: redisHost }
  });
}

const arenaConfig = Arena({
  queues: queuesConfig
}, {
  basePath: "/",
  disableListen: true,
});

事先感谢你的帮助。

7z5jn7bk

7z5jn7bk1#

我已经修好了 type-error . 公共关系-48242
他们在中添加了必需的构造函数条件 bull-arena 但没有更新 @types/bull-arena . 所以,我们面临这个问题。
我们必须提供bull或bee构造函数来运行代码。现在,它将与 import 也。

import Arena from "bull-arena";
import Bull from "bull";
import Bee from "bee-queue";

公牛

const arenaConfig = Arena({
  Bull,
  queues: queuesConfig
}, {
  basePath: "/",
  disableListen: true,
});

蜜蜂

const arenaConfig = Arena({
  Bee,
  queues: queuesConfig
}, {
  basePath: "/",
  disableListen: true,
});

如果您没有提供任何队列构造函数,那么它将抛出此错误。

TypeError: as of 3.0.0, bull-arena requires that the queue constructors be provided to Arena
56lgkhnf

56lgkhnf2#

我今天遇到了这个问题。
解决方案是,文档告诉您需要指定支持的库。
在我眼里可能更清楚,但不知怎的,这是有道理的。你需要导入 bull 作为bull并将其添加到配置中。
所以加上

const Bull = require('bull');

到文件的顶部。
并添加导入的 Bull, 去竞技场。

const arenaConfig = Arena({
        Bull,
        queues: queuesConfig
    }, {
        basePath: "/",
        disableListen: true,
    });

像这样的,应该有用。我在代码中实现了它,效果很好。

const Arena = require('bull-arena');

    // Mandatory import of queue library.
    const Bull = require('bull');

    const queuesConfig = [];

    for (const queue in queues) {
        console.log(queue, queues[queue]);
        queuesConfig.push({
            name: queues[queue],
            hostId: "worker",
            redis: { url: redisHost }
        });
    }

     const arenaConfig = Arena({
         // All queue libraries used must be explicitly imported and included.
         Bull,
         queues: queuesConfig
     }, {
         basePath: "/",
         disableListen: true,
     });

相关问题