【.NET】asp.net core 程序重启容器后redis无法连接,连接超时

环境是容器化部署asp.net core 程序当有大量请求打到容器如果此时重启容器会出现,redis无法连接情况。

使用 csredis 库报错:

Status unavailable, waiting for recovery. Connect to server timeout

使用StackExchange.Redis 报错:

Timeout performing SET (5000ms), active: SET GtkPMF.MES:DistributedLock:GtkPMF.MES:MesSnLockKey:Test125, next: SET GtkPMF.MES:DistributedLock:GtkPMF.MES:MesSnLockKey:Test125 ** possible thread-theft indicated; see https://stackexchange.github.io/StackExchange.Redis/ThreadTheft ** , inst: 27, qu: 0, qs: 46, aw: False, rs: CompletePendingMessageSync, ws: Idle, in: 0, in-pipe: 311, out-pipe: 0, serverEndpoint: 10.10.28.207:7551, mc: 1/1/0, mgr: 9 of 10 available, clientName: svc-touchscreen-v1-6c589d57bb-vqbwl, IOCP: (Busy=0,Free=1000,Min=12,Max=1000), WORKER: (Busy=36,Free=32731,Min=12,Max=32767), v: 2.2.4.27433 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts

通过阅读文章

https://stackexchange.github.io/StackExchange.Redis/ThreadTheft

得知可能是由于初始线程过于少,无法应对大量的请求导致

尝试调整

在 Program.cs 修改如下:

复制代码
	 public static void Main(string[] args)
	 {
	     // 添加设置线程池最小线程数
	     ThreadPool.SetMinThreads(workerThreads: 100, completionPortThreads: 100);
	
	     CreateHostBuilder(args).Build().Run();
	 }

ok重写发布解决问题~

相关推荐
jiayou641 小时前
KingbaseES 实战:审计追踪配置与运维实践
数据库
用户298698530142 小时前
.NET 文档自动化:Spire.Doc 设置奇偶页页眉/页脚的最佳实践
后端·c#·.net
NineData13 小时前
NineData 迁移评估功能正式上线
数据库·dba
NineData18 小时前
数据库迁移总踩坑?用 NineData 迁移评估,提前识别所有兼容性风险
数据库·程序员·云计算
赵渝强老师20 小时前
【赵渝强老师】PostgreSQL中表的碎片
数据库·postgresql
赵榕1 天前
ClaimsPrincipal序列化为Json的正确姿势
.net
全栈老石1 天前
拆解低代码引擎核心:元数据驱动的"万能表"架构
数据库·低代码
追逐时光者1 天前
一款使用 C# 编写专为 Windows 11 打造的文件资源管理器增强工具!
后端·.net
倔强的石头_2 天前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库