""" L2大单管理器 """ # 大单管理 from db import redis_manager_delegate as redis_manager from db.redis_manager_delegate import RedisUtils from utils import tool __db = 0 __redisManager = redis_manager.RedisManager(__db) # 是否为大单 def is_big_num(val): if int(val["num"]) >= 8000 or int(val["num"]) * float(val["price"]) >= 30000: return True else: return False __big_money_cache = {} def add_num(code, num): if code not in __big_money_cache: __big_money_cache[code] = 0 __big_money_cache[code] += num RedisUtils.incrby_async(__db, "big_money-{}".format(code), num) # 设置过期时间 def expire(code): RedisUtils.expire(__redisManager.getRedis(), "big_money-{}".format(code), tool.get_expire()) def reset(code): __big_money_cache[code] = 0 RedisUtils.set(__redisManager.getRedis(), "big_money-{}".format(code), 0) def get_num(code): num = RedisUtils.get(__redisManager.getRedis(), "big_money-{}".format(code)) if num is None: return 0 return round(int(num) / 1000 / 4) def get_num_cache(code): if code in __big_money_cache: return __big_money_cache[code] num = get_num(code) __big_money_cache[code] = num return num def reset_all(): redis = __redisManager.getRedis() try: keys = RedisUtils.keys(redis, "big_money-*", auto_free=False) for k in keys: RedisUtils.setex(redis, k, tool.get_expire(), 0, auto_free=False) finally: RedisUtils.realse(redis) if __name__ == "__main__": add_num("000332", 0) expire("000332")