You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
mikespook b7c858553c add reconnection to worker 12 years ago
client using time.After instead of a separate goroutine 12 years ago
common fixed the merge error 12 years ago
example fixed a infinite loop 12 years ago
worker add reconnection to worker 12 years ago
.hgtags Removed tag go1-0.1, go1-0.0.1 12 years ago
LICENSE Added the client 13 years ago
README.md promoted the README 12 years ago
gearman.go fixing for 'go install' 12 years ago

README.md

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, 0)
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 Code refactoring; Redesign the API.
  • 0.0.1 Initial implementation, ugly code-style, slow profermance and unstable API.

TODO

  • Can not grab a job correctly.
  • Worker’s auto-reconnection.