12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 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
- }
|