超时
已收录文章:26篇
-
Golang · Go问答 | 3星期前 | 超时 · Context · 并发控制 · Go问答 · 请求生命周期 · Go 后台任务 Deadline 请求取消 context.Cause context.WithoutCancelcontext.WithoutCancel 可以让派生上下文忽略上游取消,但它会同时失去 Deadline、Err 和 Done。本文用 HTTP 请求收尾场景对比 WithoutCancel、WithTimeout 和 WithCancelCause,给出可验证的后台任务边界和回归指标。465 收藏
-
Golang · Go问答 | 3星期前 | 超时 · 错误处理 · go · Context · errors.Is Go context deadline exceeded WithCancelCauseGo 服务里看到 context deadline exceeded,不代表所有请求都只是超时。本文从上游主动取消、下游调用超时和本地截止时间三种现场出发,演示 WithCancelCause、Cause 与 errors.Is 的判断顺序,让日志能指出真正的中断来源。309 收藏
-
Golang · Go问答 | 4星期前 | golang · 超时 · HTTP · Go问答 · Transport · 网络排查 · 连接超时 http.Transport Client.Timeout Go HTTP 客户端超时 TLS握手超时Go 的 http.Client 超时太粗时,DNS、建立连接、TLS 握手和响应读取会混在同一个等待里。本文用一段可复现的慢请求场景拆开 Transport 参数,给出基线指标、改动方案和复测边界。112 收藏
-
Redis setNX分布式锁超时时间失效 -1 使用SETNX加锁 加锁的思路: 如果 key 不存在,将 key 设置为 value,如果 key 已存在,则 SETNX 不做任何动作。 使用 RedisTemplate 操作Redis @Autowired private Redis235 收藏
-
问题内容 需求: golang实现proxy来做到前端请求某个url后落到proxy上,proxy再发起请求到backend server, 然后为了性能问题, 我需要考虑超时后放弃后端返回,以及提醒http client超时(504) 我的思路:因为整个208 收藏
-
前言最近线上一台服务器的nginx总是会有一部分请求(不是所有请求)报$mysql = new mysqli(); $mysql->real_connect('45.113.192.102', 'root', 'xxx', 'xxx', 80);$mysql = new mysqli(); $mysql->options(MYSQLI_OPT_CONNECT_TIMEOUT,126 收藏
-
golang 中的协程使用非常方便,但是协程什么时候结束是一个控制问题,可以用 select 配合使用。 首先声明,golang 使用并不熟悉,本文仅仅是记录使用过程中遇到的一些坑。 子协程和父协程的通396 收藏
-
实现原理: 并发一个函数,等待1s后向timeout写入数据,在select中如果1s之内有数据向其他channel写入则会顺利执行,如果没有,这是timeout写入了数据,则我们知道超时了。 实现代码: package main304 收藏
-
前言 最近在写项目,需要用到信号量等待一些资源完成,但是最多等待N毫秒。在看本文的正文之前,我们先来看下C语言里的实现方法。 在C语言里,有如下的API来实现带超时的信号量等待: S364 收藏
-
问题内容 需求:golang实现proxy来做到前端请求某个url后落到proxy上,proxy再发起请求到backend server, 然后为了性能问题, 我需要考虑超时后放弃后端返回,以及提醒http client超时(504) 我的思路: target, err :218 收藏
-
GO1.7之后,新增了context.Context这个package,实现goroutine的管理。 Context基本的用法参考GOLANG使用Context管理关联goroutine。 实际上,Context还有个非常重要的作用,就是设置超时。比如,如果我们有个A220 收藏
-
Go 协程超时控制 Select 阻塞方式 Context 方式 先说个场景: 假设业务中 A 服务需要调用 服务B,要求设置 5s 超时,那么如何优雅实现? Select 超时控制 考虑是否可以用 select + time.After 方式207 收藏