diff --git a/v2/event_attr.py b/v2/event_attr.py index 72a4477..d256bb6 100644 --- a/v2/event_attr.py +++ b/v2/event_attr.py @@ -7,26 +7,12 @@ class EventAttr: 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.smembers(key) or set() - return set(self.event_attr[key]) - - def set_event_attr(self, key, *data): + def set_event_name(self, key, *data): self.rdb.sadd(key, *data) - self.event_attr[key] = data - def check_attr(self, db, data): + def add_event(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) + key = f'{db}_event_set' + self.set_event_name(key, event_name) diff --git a/v2/transmitter.py b/v2/transmitter.py index 2c6583e..08168ec 100644 --- a/v2/transmitter.py +++ b/v2/transmitter.py @@ -104,10 +104,13 @@ class Transmitter: def check_table(self, db, tb, data): [self.sketch.alter_table(db, tb, item) for item in data] - def set_event_attr(self, db, tb, data): + + + def collect_event(self, db, tb, data): if tb != 'event': return - [self.event_attr.check_attr(db, item) for item in data] + + [self.event_attr.add_event(db, item) for item in data] def check_type(self, db, tb, data): struct_dict = self.sketch.struct_dict[f'{db}_{tb}'] @@ -131,7 +134,7 @@ class Transmitter: data = [self.flat_data(x) for x in buffer.values()] self.check_table(self.db_name, tb, data) self.check_type(self.db_name, tb, data) - self.set_event_attr(self.db_name, tb, data) + self.collect_event(self.db_name, tb, data) self.__send(self.db_name, tb, [json.dumps(item) for item in data]) except Exception as e: self.log.error(e)