Bull - 达到每个请求的最大重试次数限制

问题描述 投票:0回答:4

我正在使用 npm bull 添加我的队列作业来处理为我的项目发送邮件。运行了很长一段时间都没有问题,但是最近却出现这样的错误: 处理任务收集指标时出错:达到每个请求的最大重试次数限制(10 次)。有关详细信息,请参阅“maxRetriesPerRequest”选项。 error log 我检查了redis-cli: key *,它没有显示任何密钥。 bull 模块支持 @bull-monitor/express 来监视作业,但由于错误显示,我无法访问监视器 bull admin panel here is my code

express redis cron queue bull
4个回答
6
投票

当我将应用程序部署到生产环境时,我也遇到了这个问题。事实证明,Bull.js 不会自动允许通过 TLS 进行 Redis 连接,尤其是生产环境已经在通过 TLS 运行这一事实。所以对我来说解决这个问题的方法是在队列的 Redis 选项中将

tls
设置为
true
,并将
enableTLSForSentinelMode
设置为
false
。这是示例代码:

const myQueue = new Queue('my_queue', YOUR_REDIS_URL, {
  redis: { tls: true, enableTLSForSentinelMode: false },
  ...other queue options
})

1
投票

Bull 找不到要连接的 Redis。 我在本地环境中使用 bull 没有问题,在云上 bull 向我显示了同样的错误。

所以在本地环境中它连接到127.0.0.1:6379,但在云中你没有这个端口,所以你需要指定redis的用户名,redis的密码和redis的端口。


0
投票

我能够通过在队列对象上设置一些配置设置来解决这个问题,如下所示:

export const networkUnreadsQueue = new Queue(
    'Network Unreads Notifications',
    process.env.REDIS_URL,
    {
        redis: { maxRetriesPerRequest: null, enableReadyCheck: false },
    }
);

或者,如果您正在使用牛板,则可以更新到较新版本的牛板,因为它使我的应用程序抛出相同的错误。 您可以看到 他们的 github 页面上正在讨论相同的问题,从而产生了修复该问题的版本

5.0.0
的 PR(但在 API 中对导入的结构进行了重大更改)。


0
投票

您可以设置限制,例如如果您想要没有限制,只需设置 maxRetriesPerRequest: null。但也许这对性能等不利。

© www.soinside.com 2019 - 2024. All rights reserved.