增加 redis key prefix
This commit is contained in:
@@ -15,23 +15,24 @@ from py12306.log.cluster_log import ClusterLog
|
|||||||
|
|
||||||
@singleton
|
@singleton
|
||||||
class Cluster():
|
class Cluster():
|
||||||
KEY_QUERY_COUNT = 'query_count'
|
KEY_PREFIX = 'py12306_' # 目前只能手动
|
||||||
KEY_QUERY_LAST_TIME = 'query_last_time'
|
KEY_QUERY_COUNT = KEY_PREFIX + 'query_count'
|
||||||
KEY_CONFIGS = 'configs'
|
KEY_QUERY_LAST_TIME = KEY_PREFIX + 'query_last_time'
|
||||||
KEY_NODES = 'nodes'
|
KEY_CONFIGS = KEY_PREFIX + 'configs'
|
||||||
KEY_CHANNEL_LOG = 'channel_log'
|
KEY_NODES = KEY_PREFIX + 'nodes'
|
||||||
KEY_CHANNEL_EVENT = 'channel_even'
|
KEY_CHANNEL_LOG = KEY_PREFIX + 'channel_log'
|
||||||
KEY_USER_COOKIES = 'user_cookies'
|
KEY_CHANNEL_EVENT = KEY_PREFIX + 'channel_even'
|
||||||
KEY_USER_LAST_HEARTBEAT = 'user_last_heartbeat'
|
KEY_USER_COOKIES = KEY_PREFIX + 'user_cookies'
|
||||||
KEY_NODES_ALIVE = 'nodes_alive'
|
KEY_USER_LAST_HEARTBEAT = KEY_PREFIX + 'user_last_heartbeat'
|
||||||
|
KEY_NODES_ALIVE = KEY_PREFIX + 'nodes_alive'
|
||||||
|
|
||||||
# 锁
|
# 锁
|
||||||
KEY_LOCK_INIT_USER = 'lock_init_user' # 暂未使用
|
KEY_LOCK_INIT_USER = KEY_PREFIX + 'lock_init_user' # 暂未使用
|
||||||
KEY_LOCK_DO_ORDER = 'lock_do_order' # 订单锁
|
KEY_LOCK_DO_ORDER = KEY_PREFIX + 'lock_do_order' # 订单锁
|
||||||
lock_do_order_time = 60 * 1 # 订单锁超时时间
|
lock_do_order_time = 60 * 1 # 订单锁超时时间
|
||||||
|
|
||||||
lock_prefix = 'lock_' # 锁键前缀
|
lock_prefix = KEY_PREFIX + 'lock_' # 锁键前缀
|
||||||
lock_info_prefix = 'info_'
|
lock_info_prefix = KEY_PREFIX + 'info_'
|
||||||
|
|
||||||
KEY_MASTER = 1
|
KEY_MASTER = 1
|
||||||
KEY_SLAVE = 0
|
KEY_SLAVE = 0
|
||||||
@@ -220,20 +221,20 @@ class Cluster():
|
|||||||
if method:
|
if method:
|
||||||
create_thread_and_run(Event(), event_name, Const.IS_TEST, kwargs={'data': data, 'callback': True})
|
create_thread_and_run(Event(), event_name, Const.IS_TEST, kwargs={'data': data, 'callback': True})
|
||||||
|
|
||||||
def get_lock(self, key, timeout=1, info={}):
|
def get_lock(self, key: str, timeout=1, info={}):
|
||||||
timeout = int(time.time()) + timeout
|
timeout = int(time.time()) + timeout
|
||||||
res = self.session.setnx(key, timeout)
|
res = self.session.setnx(key, timeout)
|
||||||
if res:
|
if res:
|
||||||
if info: self.session.set_dict(self.lock_info_prefix + key, info) # 存储额外信息
|
if info: self.session.set_dict(self.lock_info_prefix + key.replace(self.KEY_PREFIX, ''), info) # 存储额外信息
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def get_lock_info(self, key, default={}):
|
def get_lock_info(self, key, default={}):
|
||||||
return self.session.get_dict(self.lock_info_prefix + key, default=default)
|
return self.session.get_dict(self.lock_info_prefix + key.replace(self.KEY_PREFIX, ''), default=default)
|
||||||
|
|
||||||
def release_lock(self, key):
|
def release_lock(self, key):
|
||||||
self.session.delete(key)
|
self.session.delete(key)
|
||||||
self.session.delete(self.lock_info_prefix + key)
|
self.session.delete(self.lock_info_prefix + key.replace(self.KEY_PREFIX, ''))
|
||||||
|
|
||||||
def check_locks(self):
|
def check_locks(self):
|
||||||
locks = self.session.keys(self.lock_prefix + '*')
|
locks = self.session.keys(self.lock_prefix + '*')
|
||||||
|
|||||||
Reference in New Issue
Block a user