25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

47 lines
1016 B

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