package entity import ( "fmt" "log" . "online_datasync/config" . "online_datasync/db" . "app.yhyue.com/moapp/jybase/common" "app.yhyue.com/moapp/jybase/mysql" ) type Entity interface { Run(start_unix, end_unix int64, start_layout, end_layout string) TableName() string SaveFields() []string } // func sync_add(m *mysql.Mysql, tableName string, saveField []string, id int64, f func(fv map[string]interface{})) (lastId int64) { log.Println("开始同步", tableName, "表。。。") index := 0 array := []interface{}{} lastId = id m.SelectByBath(Config.SelectBathSize, func(l *[]map[string]interface{}) { for _, v := range *l { index++ lastId = Int64All(v["id"]) for _, field := range saveField { array = append(array, v[field]) } if index%Config.InsertBathSize == 0 { log.Println("同步", tableName, "表", index) Mysql_Main.InsertIgnoreBatch(tableName, saveField, array) array = []interface{}{} } } }, fmt.Sprintf(`select * from %s where id>? order by id`, tableName), id) if len(array) > 0 { Mysql_Main.InsertIgnoreBatch(tableName, saveField, array) array = []interface{}{} } log.Println("同步", tableName, "表结束。。。", index) return }