Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 

46 lignes
1.1 KiB

  1. package main
  2. import (
  3. "gearman"
  4. "fmt"
  5. "log"
  6. "os"
  7. "strings"
  8. )
  9. func ToUpper(job *gearman.WorkerJob) ([]byte, os.Error) {
  10. data := []byte(strings.ToUpper(string(job.Data)))
  11. return data, nil
  12. }
  13. func main() {
  14. worker := gearman.NewWorker()
  15. worker.AddServer("127.0.0.1:4730")
  16. worker.AddFunction("ToUpper", ToUpper, 0)
  17. worker.AddFunction("ToUpperTimeOut5", ToUpper, 5)
  18. go func() {
  19. log.Println("start worker")
  20. for {
  21. print("cmd: ")
  22. var str string
  23. fmt.Scan(&str)
  24. switch str {
  25. case "echo":
  26. worker.Echo([]byte("Hello world!"))
  27. job := <-worker.JobQueue
  28. log.Println(string(job.Data))
  29. case "quit":
  30. worker.Close()
  31. return
  32. case "result":
  33. job := <-worker.JobQueue
  34. log.Println(string(job.Data))
  35. default:
  36. log.Println("Unknown command")
  37. }
  38. }
  39. }()
  40. worker.Work()
  41. }