添加用户数据同步确认部分
This commit is contained in:
parent
3571772bb1
commit
71783fe15f
|
|
@ -131,9 +131,13 @@ func UserSyncDataFromMaster() {
|
|||
// 同步数据到主服务器-增删改数据
|
||||
func GetUserSyncData(device string) proto.UserSyncResp {
|
||||
key := device + "_sync_user_ids"
|
||||
add_user_ids := worker.GetRedisSetMembers(key + "_add")
|
||||
update_user_ids := worker.GetRedisSetMembers(key + "_update")
|
||||
delete_user_ids := worker.GetRedisSetMembers(key + "_delete")
|
||||
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"
|
||||
//需要获取暂存集合的并集,清空暂存集合,存入待确认集合
|
||||
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{}
|
||||
update_users := []dao.User{}
|
||||
delete_users := []proto.UserDelID{}
|
||||
|
|
@ -153,16 +157,13 @@ func GetUserSyncData(device string) proto.UserSyncResp {
|
|||
id, _ := strconv.Atoi(v)
|
||||
delete_users = append(delete_users, proto.UserDelID{ID: uint(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"
|
||||
//将id存入暂存集合,清空原集合,存入待确认集合主要保证在确认时,有新的数据加入不会在确认时漏掉
|
||||
worker.SetRedisSetUnionAndStore(add_temp_key, key+"_add")
|
||||
worker.SetRedisSetClear(key + "_add")
|
||||
worker.ClearRedisSet(key + "_add")
|
||||
worker.SetRedisSetUnionAndStore(update_temp_key, key+"_update")
|
||||
worker.SetRedisSetClear(key + "_update")
|
||||
worker.ClearRedisSet(key + "_update")
|
||||
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}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -449,3 +449,14 @@ func ClearRedisSet(key string) bool {
|
|||
}
|
||||
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