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