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.
 
 
 

49 lines
906 B

  1. package main
  2. import (
  3. "github.com/mikespook/gearman-go/client"
  4. "log"
  5. "sync"
  6. )
  7. func main() {
  8. var wg sync.WaitGroup
  9. // Set the autoinc id generator
  10. // You can write your own id generator
  11. // by implementing IdGenerator interface.
  12. // client.IdGen = client.NewAutoIncId()
  13. c, err := client.New("tcp4", "127.0.0.1:4730")
  14. if err != nil {
  15. log.Fatalln(err)
  16. }
  17. defer c.Close()
  18. c.ErrorHandler = func(e error) {
  19. log.Println(e)
  20. }
  21. echo := []byte("Hello\x00 world")
  22. wg.Add(1)
  23. echomsg, err := c.Echo(echo)
  24. if err != nil {
  25. log.Fatalln(err)
  26. }
  27. log.Println(string(echomsg))
  28. wg.Done()
  29. jobHandler := func(job *client.Job) {
  30. log.Printf("%s", job.Data)
  31. wg.Done()
  32. }
  33. handle, err := c.Do("ToUpper", echo, client.JOB_NORMAL, jobHandler)
  34. if err != nil {
  35. log.Fatalln(err)
  36. }
  37. wg.Add(1)
  38. status, err := c.Status(handle)
  39. if err != nil {
  40. log.Fatalln(err)
  41. }
  42. log.Printf("%t", status)
  43. wg.Wait()
  44. }