【问题标题】:node-redis Does retry_strategy have a default value?node-redis retry_strategy 有默认值吗?
【发布时间】:2021-06-14 09:14:39
【问题描述】:

即使 redis-server 停止并且 Redis 连接仍然有效 在没有 retry_strategy 选项的情况下重新启动。

const conn = redis.createClient({
    host: 'redisUrl',
    port: 'redisPort',
    ...
    socket_keepalive : true   
});

redisClient.on('connect', () => {
    console.log(`connect`);
}).on('error', () => {
    console.log(`error`);
});

为什么?

【问题讨论】:

    标签: node.js redis node-redis


    【解决方案1】:

    是的,node-redis 确实有他们的README 中概述的默认策略。 但是,现在所有这些都已被弃用,取而代之的是 retry_strategy 函数。

    具体来说,查找retry_max_delayconnect_timeoutmax_attempts

    retry_max_delay null 已弃用 请改用 retry_strategy。默认情况下,每次客户端尝试连接但失败时,重新连接延迟几乎翻倍。此延迟通常会无限增长,但设置 retry_max_delay 会将其限制为以毫秒为单位提供的最大值。

    connect_timeout 3600000 已弃用 请改用 retry_strategy。设置 connect_timeout 限制客户端连接和重新连接的总时间。该值以毫秒为单位,从创建新客户端或从连接丢失时开始计算。最后一次重试将恰好在超时时间发生。默认是尝试连接,直到超过默认的系统套接字超时,并尝试重新连接,直到 1 小时过去。

    max_attempts 0 已弃用 请改用 retry_strategy。默认情况下,客户端将尝试重新连接,直到连接。设置 max_attempts 限制连接尝试的总数。将此设置为 1 将阻止任何重新连接尝试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-19
      • 1970-01-01
      • 2021-03-24
      • 1970-01-01
      • 2019-04-02
      • 2011-01-18
      • 2011-07-05
      • 2011-04-18
      相关资源
      最近更新 更多