添加用户数据同步确认部分
This commit is contained in:
parent
3571772bb1
commit
71783fe15f
|
|
@ -131,9 +131,13 @@ func UserSyncDataFromMaster() {
|
||||||
// 同步数据到主服务器-增删改数据
|
// 同步数据到主服务器-增删改数据
|
||||||
func GetUserSyncData(device string) proto.UserSyncResp {
|
func GetUserSyncData(device string) proto.UserSyncResp {
|
||||||
key := device + "_sync_user_ids"
|
key := device + "_sync_user_ids"
|
||||||
add_user_ids := worker.GetRedisSetMembers(key + "_add")
|
add_temp_key := device + "_sync_user_ids_add_confirm_temp"
|
||||||
update_user_ids := worker.GetRedisSetMembers(key + "_update")
|
update_temp_key := device + "_sync_user_ids_update_confirm_temp"
|
||||||
delete_user_ids := worker.GetRedisSetMembers(key + "_delete")
|
delete_temp_key := device + "_sync_user_ids_delete_confirm_temp"
|
||||||
|
//需要获取暂存集合的并集,清空暂存集合,存入待确认集合
|
||||||
|
add_user_ids := worker.GetRedisSetUnion(key+"_add", add_temp_key)
|
||||||
|
update_user_ids := worker.GetRedisSetUnion(key+"_update", update_temp_key)
|
||||||
|
delete_user_ids := worker.GetRedisSetUnion(key+"_delete", delete_temp_key)
|
||||||
add_users := []dao.User{}
|
add_users := []dao.User{}
|
||||||
update_users := []dao.User{}
|
update_users := []dao.User{}
|
||||||
delete_users := []proto.UserDelID{}
|
delete_users := []proto.UserDelID{}
|
||||||
|
|
@ -153,16 +157,13 @@ func GetUserSyncData(device string) proto.UserSyncResp {
|
||||||
id, _ := strconv.Atoi(v)
|
id, _ := strconv.Atoi(v)
|
||||||
delete_users = append(delete_users, proto.UserDelID{ID: uint(id)})
|
delete_users = append(delete_users, proto.UserDelID{ID: uint(id)})
|
||||||
}
|
}
|
||||||
//将id存入暂存集合,清空原集合
|
//将id存入暂存集合,清空原集合,存入待确认集合主要保证在确认时,有新的数据加入不会在确认时漏掉
|
||||||
add_temp_key := device + "_sync_user_ids_add_confirm_temp"
|
|
||||||
update_temp_key := device + "_sync_user_ids_update_confirm_temp"
|
|
||||||
delete_temp_key := device + "_sync_user_ids_delete_confirm_temp"
|
|
||||||
worker.SetRedisSetUnionAndStore(add_temp_key, key+"_add")
|
worker.SetRedisSetUnionAndStore(add_temp_key, key+"_add")
|
||||||
worker.SetRedisSetClear(key + "_add")
|
worker.ClearRedisSet(key + "_add")
|
||||||
worker.SetRedisSetUnionAndStore(update_temp_key, key+"_update")
|
worker.SetRedisSetUnionAndStore(update_temp_key, key+"_update")
|
||||||
worker.SetRedisSetClear(key + "_update")
|
worker.ClearRedisSet(key + "_update")
|
||||||
worker.SetRedisSetUnionAndStore(delete_temp_key, key+"_delete")
|
worker.SetRedisSetUnionAndStore(delete_temp_key, key+"_delete")
|
||||||
worker.SetRedisSetClear(key + "_delete")
|
worker.ClearRedisSet(key + "_delete")
|
||||||
return proto.UserSyncResp{Add: add_users, Update: update_users, Delete: delete_users}
|
return proto.UserSyncResp{Add: add_users, Update: update_users, Delete: delete_users}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -449,3 +449,14 @@ func ClearRedisSet(key string) bool {
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取两个集合的并集
|
||||||
|
func GetRedisSetUnion(key1 string, key2 string) []string {
|
||||||
|
ctx := context.Background()
|
||||||
|
val, err := RedisClient.SUnion(ctx, key1, key2).Result()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Error getting key: %v", err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return val
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue