|
@ -30,7 +30,7 @@ fieldIdx([Field | Fields], Idx, Acc) -> |
|
|
startWork(Cnt) when Cnt > 0 -> |
|
|
startWork(Cnt) when Cnt > 0 -> |
|
|
case ?ranksCfg:getV(?workCnt) of |
|
|
case ?ranksCfg:getV(?workCnt) of |
|
|
0 -> |
|
|
0 -> |
|
|
NameList = [{Idx, workName(Idx)} || Idx <- lists:seq(1, Cnt)], |
|
|
|
|
|
|
|
|
NameList = [{Idx, workName(Idx)} || Idx <- lists:seq(0, Cnt - 1)], |
|
|
[supervisor:start_child(rankWork_sup, [WorkName]) || {_Idx, WorkName} <- NameList], |
|
|
[supervisor:start_child(rankWork_sup, [WorkName]) || {_Idx, WorkName} <- NameList], |
|
|
CfgList = [{?workCnt, Cnt} | NameList], |
|
|
CfgList = [{?workCnt, Cnt} | NameList], |
|
|
Fields = record_info(fields, etsRankRecord), |
|
|
Fields = record_info(fields, etsRankRecord), |
|
@ -45,7 +45,7 @@ initRank(RankType, CntLimit, CntMax) -> |
|
|
|
|
|
|
|
|
%% 根据排行榜类型更新分数 需要根据key 分配到指定的排行榜工程进程执行 |
|
|
%% 根据排行榜类型更新分数 需要根据key 分配到指定的排行榜工程进程执行 |
|
|
updateScore(RankType, Key, Score) -> |
|
|
updateScore(RankType, Key, Score) -> |
|
|
WorkName = ?ranksCfg:getV(erlang:phash2(Key, ?ranksCfg:getV(?workCnt)) + 1), |
|
|
|
|
|
|
|
|
WorkName = ?ranksCfg:getV(erlang:phash2(Key, ?ranksCfg:getV(?workCnt))), |
|
|
RankPos = ?ranksCfg:getV(RankType), |
|
|
RankPos = ?ranksCfg:getV(RankType), |
|
|
%% 这里就看业务层面是否需要同步更新分数了 |
|
|
%% 这里就看业务层面是否需要同步更新分数了 |
|
|
%% 同步请求 |
|
|
%% 同步请求 |
|
@ -55,7 +55,7 @@ updateScore(RankType, Key, Score) -> |
|
|
|
|
|
|
|
|
%% 更新非排行榜分数的其他其他字段的信息 需要根据key 分配到指定的排行榜工程进程执行 |
|
|
%% 更新非排行榜分数的其他其他字段的信息 需要根据key 分配到指定的排行榜工程进程执行 |
|
|
updateInfo(Key, RecordKvs) -> |
|
|
updateInfo(Key, RecordKvs) -> |
|
|
WorkName = ?ranksCfg:getV(erlang:phash2(Key, ?ranksCfg:getV(?workCnt)) + 1), |
|
|
|
|
|
|
|
|
WorkName = ?ranksCfg:getV(erlang:phash2(Key, ?ranksCfg:getV(?workCnt))), |
|
|
%% 这里就看业务层面是否需要同步更新信息了 |
|
|
%% 这里就看业务层面是否需要同步更新信息了 |
|
|
%% 同步请求 |
|
|
%% 同步请求 |
|
|
%% gen_srv:clfn(WorkName, rank_work, mUpdateInfo, [Key, RecordKvs]), |
|
|
%% gen_srv:clfn(WorkName, rank_work, mUpdateInfo, [Key, RecordKvs]), |
|
|