如何解决错误读取 ECONNRESET 公牛库
Posted
技术标签:
【中文标题】如何解决错误读取 ECONNRESET 公牛库【英文标题】:how to solve error read ECONNRESET bull library 【发布时间】:2021-10-26 16:09:44 【问题描述】:当我在节点 js 中使用bull 库排队时出现错误,错误是这样的:
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);
【问题讨论】:
【参考方案1】:通过添加 tls 成功解决错误
const imageQueue = new Bull("imageQueue", process.env.REDIS_TLS_URL,
redis: tls: rejectUnauthorized: false ,
);
【讨论】:
【参考方案2】:bull 使用 ioredis 进行连接,并在 Queue 构造函数中允许第三个 opts 参数。根据source code it looks for a redis property within those opts.
你可以试试这个raise the retry limit to 100。
const opts = redis:maxRetriesPerRequest:100
const imageQueue = new Bull("imageQueue", process.env.REDIS_URL, opts);
但是,同样,您使用 Heroku 的 redis 服务的频率可能超过了免费层所允许的范围(如果您使用的是这样的话)。
【讨论】:
感谢您的回答,目前仍有ECONNRESET错误。为了您在我的本地计算机上的信息,它可以工作,只有在连接 redis heroku 时才会出错。 啊哈,在这种情况下,您可能超出了 Heroku 的 redis 服务限制。我认为他们按小时收费,因此您可以提供更昂贵的计划,看看它是否更适合您。这将检验我超出其极限的假设。 我的套餐有Premium 0,还缺吗?以上是关于如何解决错误读取 ECONNRESET 公牛库的主要内容,如果未能解决你的问题,请参考以下文章
React - 使用Jest和mock throws测试服务器请求的包装器:“错误:读取ECONNRESET”
如何根据请求修复读取的 ECONNRESET(使用 newman 工具)
EWS 在 Jenkins 上因“读取 ECONNRESET”而失败
ECONNRESET和WSAECONNRESET怎么产生的以及如何避免