"""
|
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"]) >= 8999 or int(val["num"]) * float(val["price"]) >= 29900:
|
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")
|