From be6876015b56a95b60dfcc3ef22af2b2979a4f7d Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 13 Jan 2020 17:09:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E8=A1=8C=E6=A6=9C=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E7=BA=BF=E7=A8=8B=E5=8C=96=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- third_party/f7 | 2 +- tools/rankserver/game2003rank.py | 27 +++++++++++++++------------ tools/rankserver/rankserver_cmd.py | 2 +- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/third_party/f7 b/third_party/f7 index 07f321e..28da41e 160000 --- a/third_party/f7 +++ b/third_party/f7 @@ -1 +1 @@ -Subproject commit 07f321e38325d429b404331b027fc9da25587469 +Subproject commit 28da41e6f70c40f14f23fde87e9482df1f614544 diff --git a/tools/rankserver/game2003rank.py b/tools/rankserver/game2003rank.py index 99bdd59..a988c8e 100644 --- a/tools/rankserver/game2003rank.py +++ b/tools/rankserver/game2003rank.py @@ -60,7 +60,7 @@ def _updateRank(r, channel, pass_list): pass_rank.append(pass_list[pass_index]) r.set("game2003api:pass_rank_" + channel, json.dumps(pass_rank)) -def dayReadMysqlData(): +def fullUpdateRank(): mysql_conf = json.loads(open(CONFIG_DIR + '/rankserver.mysql.cluster.json', 'r').read()) rank_hash = {} for conf in mysql_conf: @@ -94,13 +94,13 @@ def dayReadMysqlData(): _updateRank(r, channel, rank_hash[channel]) #每日定时读取mysql里的数据生成排行榜写入redis后php读取redis返回客户端显示 -def _dayReadMysqlData(rushtime): - dayReadMysqlData() - f7.timer.callAt(q7.getDaySeconds(time.time(), 1) + rushtime, - lambda : _dayReadMysqlData(rushtime)) +def _fullUpdateRank(rushtime): + def done_callback(): + f7.timer.callAt(q7.getDaySeconds(time.time(), 1) + rushtime, + lambda : _fullUpdateRank(rushtime)) + f7.app.createAsyncTask(done_callback, fullUpdateRank, ()) -#每5分钟读取mysql里发生改变过的数据更新排行榜 -def _readMysqlData(rushtime): +def incrementUpdateRank(rushtime): mysql_conf = json.loads(open(CONFIG_DIR + '/rankserver.mysql.cluster.json', 'r').read()) r = _getRedis() rank_hash = {} @@ -138,9 +138,12 @@ def _readMysqlData(rushtime): for channel in rank_hash: _updateRank(r, channel, rank_hash[channel]) - f7.timer.callLater(rushtime, - lambda : _readMysqlData(rushtime) - ) +#每5分钟读取mysql里发生改变过的数据更新排行榜 +def _incrementUpdateRank(rushtime): + def done_callback(): + f7.timer.callLater(rushtime, + lambda : _incrementUpdateRank(rushtime)) + f7.app.createAsyncTask(done_callback, incrementUpdateRank, ()) if __name__ == "__main__": f7.app.init('/data/logs/game2003_rankserver/logs') @@ -150,11 +153,11 @@ if __name__ == "__main__": conf['rushtime'] = 300 f7.timer.callLater(conf['rushtime'], - lambda : _readMysqlData(conf['rushtime'])) + lambda : _incrementUpdateRank(conf['rushtime'])) conf['day_rushtime'] = 5 * 3600 f7.timer.callAt(q7.getDaySeconds(time.time(), 1) + conf['day_rushtime'], - lambda : _dayReadMysqlData(conf['day_rushtime'])) + lambda : _fullUpdateRank(conf['day_rushtime'])) f7.app.listen(conf['listen_port']) f7.app.start() diff --git a/tools/rankserver/rankserver_cmd.py b/tools/rankserver/rankserver_cmd.py index 95684b2..d6e0098 100644 --- a/tools/rankserver/rankserver_cmd.py +++ b/tools/rankserver/rankserver_cmd.py @@ -17,7 +17,7 @@ import os import game2003rank def _updateRank_cmd(debug_info): - game2003rank.dayReadMysqlData() + game2003rank.fullUpdateRank() def _clearRank_cmd(debug_info): for conf in game2003rank.getRedisConf():