Golang超时机制--2秒内某个函数没被调用就认为超时
2024-09-21 20:05:39
Golang超时机制--2秒内某个函数没被调用就认为超时
需求描述
当一整套流程需要其他程序来调用函数完成时通常需要一个超时机制,防止别人程序故障不调你函数导致你的程序流程卡死
实现demo
package main
import (
"fmt"
"time"
)
var timeoutchan chan bool
func init () {
timeoutchan = make(chan bool ,1)
}
func main() {
f13_1()
// 通过睡眠模拟超时
time.Sleep(time.Second * 3)
f13_2()
time.Sleep(time.Second * 5)
}
func f13_1(){
go func () {
for {
<- time.After(time.Second*2)
select {
case <- timeoutchan:
fmt.Println("success...")
return
default:
fmt.Println("timeout...")
// TODO 做超时处理逻辑
return
}
}
}()
}
func f13_2() {
timeoutchan <- true
}
最新文章
- Spring Boot文档阅读
- usr/include/dispatch - dispatch_source
- 十二天 mysql操作
- 关于在c#中引用外部dll文件,在页面中找不到命名空间
- Scene (场景视图) 详解
- Android系统Google Maps开发实例浅析
- Selenium 使用NPOI来实现report
- 为什么DropDownList的SelectedIndexChanged事件触发不了
- HTTP协议形象展现
- 用vue实现点击编辑按钮将li变为可以输入文本的input
- python字符串(string)方法整理
- mysql-SQL Error: 1205, SQLState: 41000
- U盘文件系统格式
- Docker容器学习与分享01
- day3 三、基本数据类型和运算符
- 【网络编程一】主机字节序与网络字节序以及ip地址转换函数
- 《Netty权威指南》(三)Netty 入门应用
- Tensorflow(二)
- 微软职位内部推荐-Senior Software Engineer II-Search
- restful的设计风格