问题标签 [bullmq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
110 浏览

node.js - 有没有办法在将环境加载到公牛作业的子进程时将命令行参数传递给节点进程?

我需要传递命令行参数或参数或 execargv,它们应该在为子进程加载环境时出现在进程参数中,该子进程将由公牛启动以处理作业。

可能吗?如果是,有什么办法吗?

我可以使用包含/bull/lib/process的 args[1] 识别为公牛启动的子进程, 但我想将自定义参数传递给节点进程。

0 投票
1 回答
60 浏览

dependency-injection - 将 BullMQ 与 NestJs 一起使用,是否可以将配置变量用作作业名称的一部分?

我正在尝试在 nestjs/bull 模块的 @Process() 装饰器中使用环境变量值,如下所示。我应该如何提供“STAGE”变量作为工作名称的一部分?

编辑了 Micael 和 Jay 的答案(如下):

Micael Levi 回答了最初的问题:您不能使用 NestJS ConfigModule 将您的配置放入内存变量中。但是,在引导函数中运行 dotenv.config() 也不起作用;如果您尝试从方法装饰器中访问它们,您将获得未定义的内存变量值。为了解决这个问题,Jay McDoniel 指出您必须在导入 AppModule 之前导入文件。所以这有效:

0 投票
0 回答
37 浏览

testing - 在 NestJS 中模拟公牛队列

我正在尝试测试在向我的一个控制器发送请求后,队列会推送作业。实现本身按预期工作。

这是我的app.module.ts

这就是我的import.module.ts(使用队列的模块)的样子:

所以正如我所说,在功能上实现效果很好

我试图遵循这种方法

哪个没有在 beforeAll 钩子中注册队列,我得到了

这种做法

在测试套件的 beforeAll 挂钩中注册了一个队列,我得到:

这是我的“基本测试套件”:

关于这里可能有什么问题的任何想法?谢谢!

0 投票
0 回答
18 浏览

node.js - 如何在通过 pg-query-stream 流式传输 postgres 数据库查询时测量进度?

我有一个 ETL 查询,它需要我读取大量行,然后对它们应用一些转换并将它们保存回 Postgres 中的单独表中。我正在使用 pg-query-stream 并且我计划在 Bullmq 作业中运行下面的测试功能。

如何测量下面给定流的进度(当前处理的行数/总行数)?

0 投票
1 回答
28 浏览

node.js - 在快速服务器中运行时如何优雅地关闭bulmq?

  • 我有一个使用 Bullmq 队列、调度程序和工作程序的快速应用程序。即使按下 Ctrl + CI 后,仍然可以看到节点进程在我的活动管理器中运行,但终端上的服务器关闭。我知道这一点,因为即使在服务器关闭到终端之后,bulmq 任务也开始输出 console.log 语句。

这就是我的 server.js 文件的样子

请注意,我在上面定义了一个 SIGINT 处理程序。这是我的工作没有退出的原因吗?我是否必须手动关闭 SIGINT 中的每个队列、工作程序和调度程序?我的 jobs/repeatable.js 文件如下所示

这是我的jobs.js 文件

这是我的 delete-expired-tokens.js 文件,另一个非常相似

如何优雅地关闭 Bullmq 任务队列?

0 投票
0 回答
11 浏览

node.js - NestJS 排队处理多个作业

我对 NestJS 和 Bull MQ 有疑问,每当我尝试处理多个作业时,只会执行第一个作业,而不会执行其余作业。

我浏览电子邮件,然后开始像这样处理它们。只有第一个被添加到队列中,而不是其余的。