0

当我在节点 js 中与公牛库排队时出现错误,错误是这样的:

     Error: read ECONNRESET at TCP.onStreamRead 
    - - errno: -104,
   - - code: 'ECONNRESET',
   - - syscall: 'read'
   - - }

 MaxRetriesPerRequestError: Reached the max retries per request limit (which is 20). Refer to "maxRetriesPerRequest" option for details.

这是我的代码:

const imageQueue = new Bull("imageQueue", process.env.REDIS_URL);
4

2 回答 2

1

通过添加 tls 成功解决了错误

const imageQueue = new Bull("imageQueue", process.env.REDIS_TLS_URL, {
  redis: { tls: { rejectUnauthorized: false } },
});
于 2021-08-31T03:52:02.463 回答
0

Bull 使用 ioredis 进行连接,并允许在 Queue 构造函数中添加第三个 opts 参数。根据源代码,它会在这些 opts 中查找 redis 属性

您可以尝试将重试限制提高到 100

const opts = {redis:{maxRetriesPerRequest:100}}
const imageQueue = new Bull("imageQueue", process.env.REDIS_URL, opts);

但是,同样,您使用 Heroku 的 redis 服务的频率可能比免费层所允许的更密集(如果您使用的是这种服务)。

于 2021-08-26T16:32:30.607 回答