| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package com.kym.common.config;
- import io.lettuce.core.resource.ClientResources;
- import io.lettuce.core.resource.NettyCustomizer;
- import io.netty.bootstrap.Bootstrap;
- import io.netty.channel.Channel;
- import io.netty.channel.ChannelDuplexHandler;
- import io.netty.channel.ChannelHandlerContext;
- import io.netty.handler.timeout.IdleStateEvent;
- import io.netty.handler.timeout.IdleStateHandler;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- /**
- * @author skyline
- * @description redis lettuce心跳配置
- * @date 2023-09-14 13:28
- */
- @Configuration
- public class LettuceClientConfig {
- @Bean
- public ClientResources clientResources() {
- NettyCustomizer nettyCustomizer = new NettyCustomizer() {
- @Override
- public void afterChannelInitialized(Channel channel) {
- channel.pipeline().addLast(
- //此处事件必须小于超时时间
- new IdleStateHandler(40, 0, 0));
- channel.pipeline().addLast(new ChannelDuplexHandler() {
- @Override
- public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
- if (evt instanceof IdleStateEvent) {
- ctx.disconnect();
- }
- }
- });
- }
- @Override
- public void afterBootstrapInitialized(Bootstrap bootstrap) {
- }
- };
- return ClientResources.builder().nettyCustomizer(nettyCustomizer).build();
- }
- }
|