读取ECONNRESET牛库报错如何解决

how to solve error read ECONNRESET bull library

当我在节点 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);

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 服务的频率可能超过免费层允许的范围(如果您使用的是免费层)。

错误通过添加tls成功解决

const imageQueue = new Bull("imageQueue", process.env.REDIS_TLS_URL, {
  redis: { tls: { rejectUnauthorized: false } },
});