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