package des import ( "log" "time" "app.yhyue.com/moapp/jybase/mysql" // esv7 "github.com/olivere/elastic/v7" ) // 目标保存对象,mysql工具类 type DTidb struct { Ch chan map[string]any ChEnd chan bool ColName string TiDb *mysql.Mysql } func GetDTidb(dbName, addr, user, pwd, colName string) *DTidb { tidb := &mysql.Mysql{ Address: addr, UserName: user, PassWord: pwd, DBName: dbName, MaxOpenConns: 20, MaxIdleConns: 10, } tidb.Init() t := &DTidb{ Ch: make(chan map[string]any, 500), ChEnd: make(chan bool), ColName: colName, TiDb: tidb, } return t } func (tidb *DTidb) Save() { L: for { select { case data := <-tidb.Ch: tidb.TiDb.Insert("customer_data_ttzl", data) default: select { case <-tidb.ChEnd: break L case <-time.After(time.Millisecond * 10): } } } log.Println("tidb,保存完成...") } func (tidb *DTidb) Send(data map[string]any) { tidb.Ch <- data } func (tidb *DTidb) End() { tidb.ChEnd <- true }