main.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package main
  2. import (
  3. "context"
  4. "fmt"
  5. "git.nspix.com/golang/micro"
  6. "git.nspix.com/golang/micro/helper/console"
  7. "math/rand"
  8. "time"
  9. )
  10. type (
  11. Request struct {
  12. Name string
  13. Age int
  14. Co float64
  15. }
  16. )
  17. func main() {
  18. svr := micro.Init(
  19. micro.WithName("git.nspix.com/test", "0.0.01"),
  20. micro.WithoutRegister(),
  21. micro.WithHttpDebug(),
  22. micro.WithStats(),
  23. micro.WithCli(),
  24. micro.WithPort(6567),
  25. )
  26. micro.Handle("getUserList", func(ctx micro.Context) (err error) {
  27. var req Request
  28. if err = ctx.Bind(&req); err != nil {
  29. return err
  30. }
  31. return ctx.Success(req)
  32. }, func(o *micro.HandleOptions) {
  33. o.DisableCli = false
  34. })
  35. micro.Handle("/show/contenxt", func(ctx micro.Context) (err error) {
  36. table := console.NewTable().WithBordered()
  37. table.AddRow("Name", "Age")
  38. for i := 0; i < 10; i++ {
  39. table.AddRow(fmt.Sprintf("zhansan%d", i), i+12)
  40. }
  41. return ctx.Success(table)
  42. }, func(o *micro.HandleOptions) {
  43. o.DisableCli = false
  44. })
  45. go func() {
  46. time.AfterFunc(time.Second*5, func() {
  47. for i := 0; i < 10; i++ {
  48. r := rand.Int63n(10000)
  49. micro.DeferTick(time.Duration(r)*time.Millisecond, func(ctx context.Context) {
  50. fmt.Println(time.Now().Unix())
  51. })
  52. }
  53. })
  54. }()
  55. if err := svr.Run(); err != nil {
  56. fmt.Println(err)
  57. }
  58. }