def do_event(self, uid, cls_info, event): """ 对于每个事件的处理,实际调用了collection的record行为。 """ handle = EventFactory.produce(cls_info) instance = handle(uid=uid, **event) instance.record()
def do_query(self, app_name, query, fields, **kwargs): collection_name = query.pop('event_name', '') from_datetime = query.pop('from_datetime', '') to_datetime = query.pop('to_datetime', '') cls_info = RegisteredEvents.get_by_name(app_name, collection_name) alias = cls_info['alias'] key_fields = QueryInterpreter.parse(fields, alias) handle = EventFactory.produce(cls_info) info = handle.mget(from_datetime=from_datetime, to_datetime=to_datetime, fields=key_fields) return info