testconc.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package main
  2. import (
  3. //"fmt"
  4. "context"
  5. "sync"
  6. "time"
  7. //"encoding/json"
  8. //"github.com/gomodule/redigo/redis"
  9. //"github.com/vmihailenco/msgpack/v5"
  10. //"github.com/tidwall/uhatools"
  11. "git.wecise.com/wecise/odb-go/odb"
  12. "gitee.com/wecisecode/util/logger"
  13. )
  14. func main() {
  15. client, err := getClient()
  16. if err != nil {
  17. logger.Error(err)
  18. }
  19. defer func() {
  20. if err := client.Close(); err != nil {
  21. logger.Error(err)
  22. }
  23. }()
  24. client2, err := getClient()
  25. if err != nil {
  26. logger.Error(err)
  27. }
  28. defer func() {
  29. if err := client2.Close(); err != nil {
  30. logger.Error(err)
  31. }
  32. }()
  33. var wg sync.WaitGroup
  34. wg.Add(2)
  35. ctx, cancel := context.WithTimeout(context.Background(), time.Second*20)
  36. defer cancel()
  37. q1 := client.Query(`update /matrix/devops/alert_status set type = 1 where severity > 2`).WithContext(ctx)
  38. q2 := client2.Query(`select id from /matrix/ limit 1`).WithContext(context.Background())
  39. go func() {
  40. defer wg.Done()
  41. _, err = q1.Do()
  42. if err != nil {
  43. logger.Error(err)
  44. }
  45. logger.Info("mql", 1, "ok")
  46. }()
  47. time.Sleep(time.Second)
  48. go func() {
  49. defer wg.Done()
  50. _, err = q2.Do()
  51. if err != nil {
  52. logger.Error(err)
  53. }
  54. logger.Info("mql", 2, "ok")
  55. }()
  56. wg.Wait()
  57. }
  58. func getClient() (c odb.Client, err error) {
  59. client, err := odb.NewClient(&odb.Config{
  60. Keyspace: "eventbus",
  61. Hosts: []string{"127.0.0.1:11001"},
  62. })
  63. if err != nil {
  64. return nil, err
  65. }
  66. return client, nil
  67. }