package main

import (
    "gearman"
    "log"
)

func main() {
    client := gearman.NewClient()
    defer client.Close()
    client.AddServer("127.0.0.1:4730")
    echo := []byte("Hello\x00 world")

    if data, err := client.Echo(echo); err != nil {
        log.Println(string(data))
    }

    handle, err := client.Do("ToUpper", echo, gearman.JOB_NORMAL)
    if err != nil {
        log.Println(err)
    } else {
        log.Println(handle)
        job := <-client.JobQueue
        if data, err := job.Result(); err != nil {
            log.Println(err)
        } else {
            log.Println(string(data))
        }
    }

    known, running, numerator, denominator, err := client.Status(handle)
    if err != nil {
        log.Println(err)
    }
    if !known {
        log.Println("Unknown")
    }
    if running {
        log.Printf("%g%%\n", float32(numerator)*100/float32(denominator))
    } else {
        log.Println("Not running")
    }
}

package main

import (
    "gearman"
    "log"
)

func main() {
    client := gearman.NewClient()
    defer client.Close()
    if err := client.AddServer("127.0.0.1:4730"); err != nil {
        log.Fatalln(err)
    }
    echo := []byte("Hello\x00 world")

    if data, err := client.Echo(echo); err != nil {
        log.Fatalln(string(data))
    }

    handle, err := client.Do("ToUpper", echo, gearman.JOB_NORMAL)
    if err != nil {
        log.Fatalln(err)
    } else {
        log.Println(handle)
        /*job := <-client.JobQueue
        if data, err := job.Result(); err != nil {
            log.Fatalln(err)
        } else {
            log.Println(string(data))
        }*/
    }

    known, running, numerator, denominator, err := client.Status(handle)
    if err != nil {
        log.Fatalln(err)
    }
    if !known {
        log.Println("Unknown")
    }
    if running {
        log.Printf("%g%%\n", float32(numerator)*100/float32(denominator))
    } else {
        log.Println("Not running")
    }
}

Fix bugs in example codes.
Fix bugs in example codes.
