# -*- coding: utf-8 -*- #!/usr/bin/python import sys 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 game2003rank def scanRedisKey(conn, pattern): result = {} cursor, keys = conn.scan(0, pattern, 1000) while cursor != 0 or len(keys) > 0: for key in keys: if key in result: result[key] += result[key] else: result[key] = 0 keys = [] if cursor != 0: cursor, keys = conn.scan(cursor, pattern, 1000) return result def _updateRank_cmd(debug_info): game2003rank.internalDayReadMysqlData() def _clearRank_cmd(debug_info): for conf in game2003rank.getRedisConf(): r = redis.Redis(host = conf['host'], port = conf['port'], password = conf['passwd'], charset = 'utf8' ) pass_list = [] scan_keys = scanRedisKey(r, "game2003api:pass_rank_*") for key in scan_keys : r.set(key, json.dumps(pass_list)) def processCmdLine(cmd): cmd_hash = { 'updateRank': _updateRank_cmd, 'clearRank': _clearRank_cmd, } precmd_hash = { } postcmd_hash = { } debug_info = { 'record_count': 0, 'param1': 0, 'param2': 0, 'param3': 0, 'param4': 0 } if cmd in precmd_hash: precmd_hash[cmd](debug_info) if cmd in cmd_hash: cmd_hash[cmd](debug_info) if cmd in postcmd_hash: postcmd_hash[cmd](debug_info) if __name__ == "__main__": if len(sys.argv) <= 1: pass else: processCmdLine(sys.argv[1])