def process(self, request): start_time = time.time() client = DBClient() client.connect() req = db_pb2.DBRequest() res = db_pb2.DBResponse() req.ParseFromString(request) res.seq_id = req.seq_id status = -1 for query in req.query: logger.debug("process query[sql=%s]" % query) result = res.result.add() if query.type == Query.SELECT: status = self._select(client, query, result) elif query.type == Query.INSERT: status = self._insert(client, query, result) elif query.type == Query.UPDATE: status = self._update(client, query, result) elif query.type == Query.DELETE: status = self._delete(client, query, result) if status != 0: break client.commit() res.status = status consume_time = int((time.time() - start_time) * 1000) logger.notice("Query[req=%s][res=%s][consume=%d ms]" % (req, res, consume_time)) return res.SerializeToString()