微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Gearman-Go

程序名称:Gearman-Go

授权协议: MIT

操作系统: 跨平台

开发语言: Google Go

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐