一个随便糊的用于模拟高延迟接口的go程序:修订间差异

来自三线的随记
(创建页面,内容为“ package main import ( "fmt" "net/http" "time" ) func HelloHandler(w http.ResponseWriter, r *http.Request) { fmt.Println(r) min := 5 s…”)
 
无编辑摘要
 
(未显示同一用户的1个中间版本)
第32行: 第32行:
  }
  }
食用方法:
食用方法:
  go run /script/sleep.go
  go run sleep.go
ps: 也可以通过tc命令实现
 
例如
[root@test ~]# tc qdisc add dev calic1c981f0768 root netem delay 2980ms
[root@test ~]# tc qdisc add dev calide0993eb080 root netem delay 3010ms
[[分类:Linux]]
[[分类:Linux]]
[[分类:Golang]]
[[分类:Golang]]

2022年8月24日 (三) 01:27的最新版本

package main

import (
   "fmt"
   "net/http"
   "time"
)

func HelloHandler(w http.ResponseWriter, r *http.Request) {
   fmt.Println(r)
   min := 5
   s := min * 60
   fmt.Println(r.RemoteAddr, ": going to sleep",s ,"s(", min, " min)")
   for i := 1;i <= min; i++ {
     fmt.Println(r.RemoteAddr, ": sleeping", i, "* 60s")
     time.Sleep(60 *time.Second)
   }
   fmt.Fprintf(w, "Hello World")
   fmt.Println(r.RemoteAddr, ": End of sleep",r)
}

func common(w http.ResponseWriter, r *http.Request) {
  fmt.Println(r)
  fmt.Fprintf(w, "common - Hello World")
}

func main () {
   fmt.Println("listening: 8000")
   http.HandleFunc("/", HelloHandler)
   http.HandleFunc("/sleeper-sanxian/common", common)
   http.ListenAndServe(":8000", nil)
}

食用方法:

go run sleep.go

ps: 也可以通过tc命令实现

例如

[root@test ~]# tc qdisc add dev calic1c981f0768 root netem delay 2980ms
[root@test ~]# tc qdisc add dev calide0993eb080 root netem delay 3010ms