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.

пре 10 година
пре 10 година
пре 10 година
пре 9 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
пре 10 година
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package main
  2. import (
  3. "github.com/mikespook/gearman-go/client"
  4. "log"
  5. "os"
  6. "sync"
  7. )
  8. func main() {
  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(client.Network, "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. os.Exit(1)
  21. }
  22. echo := []byte("Hello\x00 world")
  23. echomsg, err := c.Echo(echo)
  24. if err != nil {
  25. log.Fatalln(err)
  26. }
  27. log.Println(string(echomsg))
  28. jobHandler := func(resp *client.Response) {
  29. switch resp.DataType {
  30. case client.WorkException:
  31. fallthrough
  32. case client.WorkFail:
  33. fallthrough
  34. case client.WorkComplate:
  35. if data, err := resp.Result(); err == nil {
  36. log.Printf("RESULT: %v\n", data)
  37. } else {
  38. log.Printf("RESULT: %s\n", err)
  39. }
  40. case client.WorkWarning:
  41. fallthrough
  42. case client.WorkData:
  43. if data, err := resp.Update(); err == nil {
  44. log.Printf("UPDATE: %v\n", data)
  45. } else {
  46. log.Printf("UPDATE: %v, %s\n", data, err)
  47. }
  48. case client.WorkStatus:
  49. if data, err := resp.Status(); err == nil {
  50. log.Printf("STATUS: %v\n", data)
  51. } else {
  52. log.Printf("STATUS: %s\n", err)
  53. }
  54. default:
  55. log.Printf("UNKNOWN: %v", resp.Data)
  56. }
  57. }
  58. handle, err := c.Do("ToUpper", echo, client.JobNormal, jobHandler)
  59. if err != nil {
  60. log.Fatalln(err)
  61. }
  62. status, err := c.Status(handle)
  63. if err != nil {
  64. log.Fatalln(err)
  65. }
  66. log.Printf("%v", *status)
  67. _, err = c.Do("Foobar", echo, client.JobNormal, jobHandler)
  68. if err != nil {
  69. log.Fatalln(err)
  70. }
  71. log.Println("Press Ctrl-C to exit ...")
  72. var mutex sync.Mutex
  73. mutex.Lock()
  74. mutex.Lock()
  75. }