77 lines
1.8 KiB
Python
77 lines
1.8 KiB
Python
# -*- 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])
|