1
This commit is contained in:
parent
a1d01c9ee6
commit
da8bfd2092
1
.gitignore
vendored
1
.gitignore
vendored
@ -9,3 +9,4 @@
|
||||
*.tar.gz
|
||||
target
|
||||
config/
|
||||
__pycache__/
|
101
tools/rankserver/delrank.py
Normal file
101
tools/rankserver/delrank.py
Normal file
@ -0,0 +1,101 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#!/usr/bin/python
|
||||
|
||||
import pymysql
|
||||
import hashlib
|
||||
import json
|
||||
import urllib.request
|
||||
import base64
|
||||
import tornado.ioloop
|
||||
import tornado.web
|
||||
import time
|
||||
import datetime
|
||||
import redis
|
||||
import os
|
||||
import functools
|
||||
import delrank_cmd
|
||||
import sys
|
||||
|
||||
CONFIG_DIR = ''
|
||||
|
||||
def IsOnlineEnv():
|
||||
return os.getenv("SERVER_ENV");
|
||||
|
||||
if (IsOnlineEnv()):
|
||||
CONFIG_DIR = '/var/data/conf_test/game2003api_rankserver/config'
|
||||
else:
|
||||
CONFIG_DIR = '../config'
|
||||
|
||||
def info(msg):
|
||||
print(str(datetime.datetime.now()) + '[INFO] ' + msg)
|
||||
|
||||
def getRedis():
|
||||
redis_conf = json.loadsmysql_conf = json.loads(open(CONFIG_DIR + '/rankserver.redis.cluster.json', 'r').read())
|
||||
for conf in redis_conf:
|
||||
r = redis.Redis(host = conf['host'],
|
||||
port = conf['port'],
|
||||
password = conf['passwd'],
|
||||
charset = 'utf8'
|
||||
)
|
||||
return r;
|
||||
|
||||
#字符串排序
|
||||
def customCmp(a, b):
|
||||
if len(a[4]) < len(b[4]):
|
||||
return -1
|
||||
elif len(a[4]) > len(b[4]):
|
||||
return 1
|
||||
#endif
|
||||
if a[4] < b[4]:
|
||||
return -1
|
||||
elif a[4] > b[4]:
|
||||
return 1
|
||||
else:
|
||||
return
|
||||
|
||||
#删除排行榜数据
|
||||
def delMysqlData():
|
||||
pass_list = []
|
||||
coin_list = []
|
||||
r = getRedis()
|
||||
updateRank(r, pass_list, coin_list)
|
||||
|
||||
#更新排行榜
|
||||
def updateRank(r, pass_list, coin_list):
|
||||
pass_list.sort(key=take_pass, reverse=True)
|
||||
pass_rank = []
|
||||
for pass_index in range(min(50, len(pass_list))):
|
||||
pass_rank.append(pass_list[pass_index])
|
||||
r.set("game2003api:pass_rank", json.dumps(pass_rank))
|
||||
|
||||
coin = sorted(coin_list, key=functools.cmp_to_key(customCmp), reverse = True)
|
||||
coin_rank = []
|
||||
for coin_index in range(min(50, len(coin))):
|
||||
coin_rank.append(coin[coin_index])
|
||||
r.set("game2003api:coin_rank", json.dumps(coin_rank))
|
||||
|
||||
class SelfCheckingHandler(tornado.web.RequestHandler):
|
||||
|
||||
def get(self):
|
||||
self.write(json.dumps({
|
||||
'errcode': 0,
|
||||
'errmsg': '',
|
||||
'healthy': 1,
|
||||
'max_rundelay': 10
|
||||
}))
|
||||
|
||||
def make_app():
|
||||
return tornado.web.Application([
|
||||
(r"/webapp/index[\.]php", SelfCheckingHandler),
|
||||
])
|
||||
|
||||
if __name__ == "__main__":
|
||||
conf = json.loads(open(CONFIG_DIR + '/rankserver.json', 'r').read())
|
||||
redis_cluster = json.loads(open(CONFIG_DIR + '/rankserver.redis.cluster.json', 'r').read())
|
||||
mysql_cluster = json.loads(open(CONFIG_DIR + '/rankserver.mysql.cluster.json', 'r').read())
|
||||
if len(sys.argv) <= 1:
|
||||
app = make_app()
|
||||
app.listen(conf['listen_port'])
|
||||
delMysqlData()
|
||||
else:
|
||||
delrank_cmd.processCmdLine(sys.argv[1], redis_cluster, mysql_cluster)
|
110
tools/rankserver/delrank_cmd.py
Normal file
110
tools/rankserver/delrank_cmd.py
Normal file
@ -0,0 +1,110 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#!/usr/bin/python
|
||||
|
||||
import pymysql
|
||||
import hashlib
|
||||
import json
|
||||
import urllib.request
|
||||
import base64
|
||||
import tornado.ioloop
|
||||
import tornado.web
|
||||
import time
|
||||
import datetime
|
||||
import redis
|
||||
import os
|
||||
import functools
|
||||
|
||||
CONFIG_DIR = ''
|
||||
|
||||
def take_pass(elem):
|
||||
return elem[3]
|
||||
|
||||
def safeDiv(a, b):
|
||||
if b == 0:
|
||||
return 0
|
||||
else:
|
||||
return a / b
|
||||
|
||||
def IsOnlineEnv():
|
||||
return os.getenv("SERVER_ENV");
|
||||
|
||||
if (IsOnlineEnv()):
|
||||
CONFIG_DIR = '/var/data/conf_test/game2003api_rankserver/config'
|
||||
else:
|
||||
CONFIG_DIR = '../config'
|
||||
|
||||
def info(msg):
|
||||
print(str(datetime.datetime.now()) + '[INFO] ' + msg)
|
||||
|
||||
def getRedis():
|
||||
redis_conf = json.loadsmysql_conf = json.loads(open(CONFIG_DIR + '/rankserver.redis.cluster.json', 'r').read())
|
||||
for conf in redis_conf:
|
||||
r = redis.Redis(host = conf['host'],
|
||||
port = conf['port'],
|
||||
password = conf['passwd'],
|
||||
charset = 'utf8'
|
||||
)
|
||||
return r;
|
||||
|
||||
#字符串排序
|
||||
def customCmp(a, b):
|
||||
if len(a[4]) < len(b[4]):
|
||||
return -1
|
||||
elif len(a[4]) > len(b[4]):
|
||||
return 1
|
||||
#endif
|
||||
if a[4] < b[4]:
|
||||
return -1
|
||||
elif a[4] > b[4]:
|
||||
return 1
|
||||
else:
|
||||
return
|
||||
|
||||
#删除排行榜数据
|
||||
def delMysqlData():
|
||||
pass_list = []
|
||||
coin_list = []
|
||||
r = getRedis()
|
||||
updateRank(r, pass_list, coin_list)
|
||||
|
||||
class SelfCheckingHandler(tornado.web.RequestHandler):
|
||||
|
||||
def get(self):
|
||||
self.write(json.dumps({
|
||||
'errcode': 0,
|
||||
'errmsg': '',
|
||||
'healthy': 1,
|
||||
'max_rundelay': 10
|
||||
}))
|
||||
|
||||
def _crcDel_cmd():
|
||||
pass_list = []
|
||||
coin_list = []
|
||||
r = getRedis()
|
||||
updateRank(r, pass_list, coin_list)
|
||||
|
||||
def updateRank(r, pass_list, coin_list):
|
||||
pass_list.sort(key=take_pass, reverse=True)
|
||||
pass_rank = []
|
||||
for pass_index in range(min(50, len(pass_list))):
|
||||
pass_rank.append(pass_list[pass_index])
|
||||
r.set("game2003api:pass_rank", json.dumps(pass_rank))
|
||||
|
||||
coin = sorted(coin_list, key=functools.cmp_to_key(customCmp), reverse = True)
|
||||
coin_rank = []
|
||||
for coin_index in range(min(50, len(coin))):
|
||||
coin_rank.append(coin[coin_index])
|
||||
r.set("game2003api:coin_rank", json.dumps(coin_rank))
|
||||
|
||||
def processCmdLine(cmd, redis_cluster, mysql_cluster):
|
||||
precmd_hash = {
|
||||
'crcDel': _crcDel_cmd
|
||||
}
|
||||
print('ok')
|
||||
if cmd in precmd_hash:
|
||||
precmd_hash[cmd]()
|
||||
|
||||
def make_app():
|
||||
return tornado.web.Application([
|
||||
(r"/webapp/index[\.]php", SelfCheckingHandler),
|
||||
])
|
Loading…
x
Reference in New Issue
Block a user