# Gearman API for golang This package is a [Gearman](http://gearman.org/) API for [Golang](http://golang.org). It was implemented a native protocol for both worker and client API. Copyright 2012 Xing Xing All rights reserved. Use of this source code is governed by a MIT license that can be found in the LICENSE file. # INSTALL Install the client package: > $ go get bitbucket.org/mikespook/gearman-go/client Install the worker package: > $ go get bitbucket.org/mikespook/gearman-go/worker Install both: > $ go get bitbucket.org/mikespook/gearman-go # SAMPLE OF USAGE ## Worker w := worker.New(worker.Unlimited) w.ErrHandler = func(e error) { log.Println(e) } w.AddServer("127.0.0.1:4730") w.AddFunc("ToUpper", ToUpper, worker.Immediately) w.AddFunc("ToUpperTimeOut5", ToUpper, 5) w.Work() ## Client c, err := client.New("127.0.0.1:4730") // ... defer c.Close() echo := []byte("Hello\x00 world") c.JobHandler = func(job *client.Job) error { log.Printf("%s", job.Data) return nil } c.ErrHandler = func(e error) { log.Println(e) panic(e) } handle, err := c.Do("ToUpper", echo, client.JOB_NORMAL) // ... # Contacts Xing Xing [Blog](http://mikespook.com) [@Twitter](http://twitter.com/mikespook) # History * 0.1.2 Fixed issues: timeout executing, resources leaking. * 0.1.1 Fixed the issue of grabbing jobs. * 0.1 Code refactoring; Redesign the API. * 0.0.1 Initial implementation, ugly code-style, slow profermance and unstable API. # TODO