game2003api/tools/rankserver/delrank_cmd.py
aozhiwei da8bfd2092 1
2019-12-25 13:50:01 +08:00

111 lines
2.5 KiB
Python

# -*- 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),
])