mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-04-22 01:48:35 +08:00
fix 修复 netty 对虚拟线程适配有问题 导致长时间使用 redisson 卡死问题
This commit is contained in:
@@ -34,7 +34,7 @@ public class ThreadPoolConfig {
|
||||
@Bean(name = "scheduledExecutorService")
|
||||
protected ScheduledExecutorService scheduledExecutorService() {
|
||||
// daemon 必须为 true
|
||||
BasicThreadFactory.Builder builder = new BasicThreadFactory.Builder().daemon(true);
|
||||
BasicThreadFactory.Builder builder = BasicThreadFactory.builder().daemon(true);
|
||||
if (SpringUtils.isVirtual()) {
|
||||
builder.namingPattern("virtual-schedule-pool-%d").wrappedFactory(new VirtualThreadTaskExecutor().getVirtualThreadFactory());
|
||||
} else {
|
||||
|
||||
@@ -562,4 +562,11 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils {
|
||||
return Strings.CS.endsWithAny(sequence, searchStrings);
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试 CharSequence 是否以指定的后缀结尾。
|
||||
*/
|
||||
public static boolean endsWith(final CharSequence str, final CharSequence suffix) {
|
||||
return Strings.CS.endsWith(str, suffix);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||
import com.fasterxml.jackson.annotation.PropertyAccessor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.core.utils.SpringUtils;
|
||||
import org.dromara.common.redis.config.properties.RedissonProperties;
|
||||
import org.dromara.common.redis.handler.KeyPrefixHandler;
|
||||
import org.dromara.common.redis.handler.RedisExceptionHandler;
|
||||
@@ -16,7 +15,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.core.task.VirtualThreadTaskExecutor;
|
||||
import tools.jackson.databind.DefaultTyping;
|
||||
import tools.jackson.databind.ext.javatime.deser.LocalDateTimeDeserializer;
|
||||
import tools.jackson.databind.ext.javatime.ser.LocalDateTimeSerializer;
|
||||
@@ -72,9 +70,10 @@ public class RedisConfig {
|
||||
//设置redis key前缀
|
||||
.setNameMapper(new KeyPrefixHandler(redissonProperties.getKeyPrefix()))
|
||||
.setCodec(codec);
|
||||
if (SpringUtils.isVirtual()) {
|
||||
config.setNettyExecutor(new VirtualThreadTaskExecutor("redisson-"));
|
||||
}
|
||||
// netty 对虚拟线程适配有问题 暂时禁止使用
|
||||
//if (SpringUtils.isVirtual()) {
|
||||
// config.setNettyExecutor(new VirtualThreadTaskExecutor("redisson-"));
|
||||
//}
|
||||
RedissonProperties.SingleServerConfig singleServerConfig = redissonProperties.getSingleServerConfig();
|
||||
if (ObjectUtil.isNotNull(singleServerConfig)) {
|
||||
// 使用单机模式
|
||||
|
||||
Reference in New Issue
Block a user