Go语言中文网 为您找到相关结果 10

golang中三种定时器的实现方式及周期定时

一、定时器的创建 golang中定时器有三种实现方式,分别是time.sleep、time.after、time.Timer 其中time.after和time.Timer需要对通道进行释放才能达到定时的效果 package main import ( "fmt" "time" ) func main() { /* 用sleep实现定时器 */ fmt.Println(time.Now()) time.Sleep(time.Second) fmt.Println(time.Now()) /* 用timer实现定时器 */ timer := time.NewTimer(time.Second) fmt.Println(<-timer.C) /* 用after实现定时器 */ fmt.Print...阅读全文

博文 2019-07-23 18:32:43 七八个星天

Golang gzip压缩的一个问题

func (b *MyBucket) Gzip(data []byte) []byte { var res bytes.Buffer gz, _ := gzip.NewWriterLevel(&res, 7) _, err := gz.Write(data) if err != nil { Log4e(err) } else { gz.Close() } return res.Bytes() } 最近将图片使用gzip压缩上传到s3, gzip压缩的过程中,Write之后一定要及时Close,不能defer, 这样才能flush, 否则得不到任何数据, 这个问题没注意, 查了半天...阅读全文

博文 2016-02-19 00:00:01 u013834131

使用GAE Standard环境发送http请求

在GAE Standard环境中,不能直接使用Golang的http包发送网络请求,需要使用如下形式才能发送网络请求。 import ( "fmt" "net/http" "google.golang.org/appengine" "google.golang.org/appengine/urlfetch" ) func handler(w http.ResponseWriter, r *http.Request) { ctx := appengine.NewContext(r) client := urlfetch.Client(ctx) resp, err := client.Get("https://www.google.com/") if err != nil { http.Erro...阅读全文

博文 2017-06-26 04:06:44 阿莱_1b6f