to_ck/v2/event_attr.py
2021-05-19 15:27:07 +08:00

31 lines
774 B
Python

from redis import Redis
class EventAttr:
event_attr = dict()
def __init__(self, rdb: Redis):
self.rdb = rdb
def get_event_attr(self, key):
attr = self.event_attr.get(key)
if not attr:
self.event_attr[key] = self.rdb.get(key) or set()
return self.event_attr[key]
def set_event_attr(self, key, *data):
self.event_attr[key] = self.rdb.sadd(key, *data)
def check_attr(self, db, data):
event_name = data.get('#event_name')
if not event_name:
return
key = f'{db}_event_{event_name}'
attr = self.get_event_attr(key)
data_attr = set(data)
extra_attr = data_attr - attr
if extra_attr:
self.set_event_attr(key, *extra_attr)