Gearman-Go 介绍
Gearman-Go 是 Gearman-API 的 Go 语言封装版本,示例代码:
Worker:
// Limit number of concurrent jobs execution. // Use worker.Unlimited (0) if you want no limitation. w := worker.New(worker.OneByOne) w.ErrHandler = func(e error) { log.Println(e) } w.AddServer("127.0.0.1:4730") // Use worker.Unlimited (0) if you want no timeout w.AddFunc("ToUpper", ToUpper, worker.Unlimited) // This will give a timeout of 5 seconds w.AddFunc("ToUpperTimeOut5", ToUpper, 5) if err := w.Ready(); err != nil { log.Fatal(err) return } go w.Work()
Client:
// ... c, err := client.New("tcp4", "127.0.0.1:4730") // ... error handling defer c.Close() c.ErrorHandler = func(e error) { log.Println(e) } echo := []byte("Hello\x00 world") echomsg, err := c.Echo(echo) // ... error handling log.Println(string(echomsg)) jobHandler := func(resp *client.Response) { log.Printf("%s", resp.Data) } handle, err := c.Do("ToUpper", echo, client.JobNormal, jobHandler) // ...
Gearman-Go 官网
https://github.com/mikespook/gearman-go
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。