Administrator
2025-06-03 c4ed4da4ac8b8bc24e0a3ed0e782e9248b4a511c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
"""
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")