GO 语言超时实现
利用select 进行一个超时的处理
利用select 进行一个超时的处理
利用select 进行一个超时的处理
利用select 进行一个超时的处理
利用select 进行一个超时的处理
版权声明: 本文为 InfoQ 作者【Dnnn】的原创文章。
原文链接:【http://xie.infoq.cn/article/d063dcc8f035b4b98e0e192bd】。文章转载请联系作者。
利用select 进行一个超时的处理
package mainimport ( "fmt" "log" "runtime" "sync" "aaaaa/script/WeatherCDN/tqt" "time")var pushFileName = make(chan string)var wg = sync.WaitGroup{}var versionList = []string{"1.0", "1.1", "2.0", "2.1", "2.2", "2.3"}func main() { runtime.GOMAXPROCS(runtime.NumCPU()) T := time.Now() for cityCode, cityName := range tqt.InitCityConf().CityMap { wg.Add(1) go backUpWeather(cityCode, cityName) } for i := 0; i < getFileTotal(); i++ { wg.Add(1) go push() } select { case <-time.After(20 * time.Second): log.Println("time out !---------!!!!!!!") log.Println(time.Since(T)) return } wg.Wait() fmt.Println("done") log.Println(time.Since(T))}func backUpWeather(cityCode string, cityName string) { defer wg.Done() tqt.NewWeather(cityCode, cityName).PullData(pushFileName, versionList)}func push() { defer wg.Done() tqt.InitPusher().PushFile(<-pushFileName)}func getFileTotal() int { return tqt.InitCityConf().TotalCity() * len(versionList)}
利用select 进行一个超时的处理
利用select 进行一个超时的处理
利用select 进行一个超时的处理
利用select 进行一个超时的处理
版权声明: 本文为 InfoQ 作者【Dnnn】的原创文章。
原文链接:【http://xie.infoq.cn/article/d063dcc8f035b4b98e0e192bd】。文章转载请联系作者。
还未添加个人签名 2019.07.09 加入
还未添加个人简介
促进软件开发及相关领域知识与创新的传播
评论