package main import ( "log" "sync" "github.com/mikespook/gearman-go/client" ) func main() { var wg sync.WaitGroup c, err := client.New("127.0.0.1:4730") if err != nil { log.Fatalln(err) } defer c.Close() echo := []byte("Hello\x00 world") c.JobHandler = func(job *client.Job) error { log.Printf("%s", job.Data) wg.Done() return nil } c.ErrHandler = func(e error) { log.Println(e) panic(e) } wg.Add(1) c.Echo(echo) wg.Add(1) handle, err := c.Do("ToUpper", echo, client.JOB_NORMAL) if err != nil { log.Fatalln(err) } else { log.Println(handle) } c.StatusHandler = func(handle string, known, running bool, numerator, denominator uint64) { log.Printf("%s: %b, %b, %d, %d", handle, known, running, numerator, denominator) wg.Done() } wg.Add(1) c.Status(handle) wg.Wait() }