Go to file
mikespook 8c67ce0830 WORK_FAIL fixed
--HG--
branch : dev
2012-09-25 14:39:50 +08:00
client using time.After instead of a separate goroutine 2012-05-30 09:54:22 +08:00
common replace the covertion method 2012-06-26 14:32:26 +08:00
example fixed resources leaking 2012-09-02 22:42:54 +08:00
worker WORK_FAIL fixed 2012-09-25 14:39:50 +08:00
.hgtags Added tag 0.1.2 for changeset 67f11fa2301f 2012-09-02 22:43:20 +08:00
gearman.go fixing for 'go install' 2012-05-24 16:56:36 +08:00
LICENSE Added the client 2011-05-19 20:10:53 +08:00
README.md fixed resources leaking 2012-09-02 22:42:54 +08:00

Gearman API for golang

This package is a Gearman API for Golang. It was implemented a native protocol for both worker and client API.

Copyright 2012 Xing Xing mikespook@gmail.com 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 mikespook@gmail.com

Blog

@Twitter

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