package main import ( //"fmt" "context" "sync" "time" //"encoding/json" //"github.com/gomodule/redigo/redis" //"github.com/vmihailenco/msgpack/v5" //"github.com/tidwall/uhatools" "git.wecise.com/wecise/odb-go/odb" "gitee.com/wecisecode/util/logger" ) func main() { client, err := getClient() if err != nil { logger.Error(err) } defer func() { if err := client.Close(); err != nil { logger.Error(err) } }() client2, err := getClient() if err != nil { logger.Error(err) } defer func() { if err := client2.Close(); err != nil { logger.Error(err) } }() var wg sync.WaitGroup wg.Add(2) ctx, cancel := context.WithTimeout(context.Background(), time.Second*20) defer cancel() q1 := client.Query(`update /matrix/devops/alert_status set type = 1 where severity > 2`).WithContext(ctx) q2 := client2.Query(`select id from /matrix/ limit 1`).WithContext(context.Background()) go func() { defer wg.Done() _, err = q1.Do() if err != nil { logger.Error(err) } logger.Info("mql", 1, "ok") }() time.Sleep(time.Second) go func() { defer wg.Done() _, err = q2.Do() if err != nil { logger.Error(err) } logger.Info("mql", 2, "ok") }() wg.Wait() } func getClient() (c odb.Client, err error) { client, err := odb.NewClient(&odb.Config{ Keyspace: "eventbus", Hosts: []string{"127.0.0.1:11001"}, }) if err != nil { return nil, err } return client, nil }