選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

47 行
956 B

  1. package main
  2. import (
  3. "log"
  4. "sync"
  5. "bitbucket.org/mikespook/gearman-go/client"
  6. )
  7. func main() {
  8. var wg sync.WaitGroup
  9. c, err := client.New("127.0.0.1:4730")
  10. if err != nil {
  11. log.Fatalln(err)
  12. }
  13. defer c.Close()
  14. echo := []byte("Hello\x00 world")
  15. c.JobHandler = func(job *client.Job) error {
  16. log.Printf("%s", job.Data)
  17. wg.Done()
  18. return nil
  19. }
  20. c.ErrHandler = func(e error) {
  21. log.Println(e)
  22. panic(e)
  23. }
  24. wg.Add(1)
  25. c.Echo(echo)
  26. wg.Add(1)
  27. handle, err := c.Do("ToUpper", echo, client.JOB_NORMAL)
  28. if err != nil {
  29. log.Fatalln(err)
  30. } else {
  31. log.Println(handle)
  32. }
  33. c.StatusHandler = func(handle string, known, running bool, numerator, denominator uint64) {
  34. log.Printf("%s: %b, %b, %d, %d", handle, known, running, numerator, denominator)
  35. wg.Done()
  36. }
  37. wg.Add(1)
  38. c.Status(handle)
  39. wg.Wait()
  40. }