Skip to content

关于Pull Message Task的 Reconnection问题疑惑 #111

Description

@eddieran

关于 RedisMessagePullTask 的初始化实现当中
会默认开启重连检测
https://github.com/xiaolyuh/layering-cache/blob/master/layering-cache-core/src/main/java/com/github/xiaolyuh/listener/RedisMessagePullTask.java#L44C9-L44C25

// 4. 重连检测
reconnectionTask(initialDelay, delay);

但是在重连检测里面,我看似乎每一次都会每隔几秒就建立一个新的连接?

@Override
    public void subscribe(RedisMessageListener messageListener, String... channels) {
        try {
            StatefulRedisPubSubConnection<String, String> connection = this.clusterClientPubSub.connectPubSub();
            logger.info("layering-cache和redis创建订阅关系,订阅频道【{}】", Arrays.toString(channels));
            connection.sync().subscribe(channels);
            connection.addListener(messageListener);
        } catch (SerializationException e) {
            throw e;
        } catch (Exception e) {
            throw new RedisClientException(e.getMessage(), e);
        }
    }

在pub/sub 的订阅初始化,这里我看 connection会持有对应的messageListener的bean,看起来连接也不会释放?
是否有连接一直堆积越建立越多的情况呢

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions