def _read_header_callback(self, buf): """ 读取数据包 """ self._server.status.inc(CacheServer.status_fields[3], len(buf)) body_length = Protocol.parse_int(buf) logger.debug("header size: %d" % body_length) self._stream.read_bytes(body_length, self._read_body_callback)
def protocol_process(self, buf): """ 协议命令处理 """ if not self._server.slave: self._server.memory.change_version() else: #Slave 发送的数据会跟上一个last_cmd_time last_cmd_time = Protocol.parse_int(buf[-4:]) buf = buf[:-4] if last_cmd_time != 0: self._server.memory.last_cmd_time = last_cmd_time self._server.status.inc(CacheServer.status_fields[0]) ptc = Protocol(buf, self, self._server) cmd_id = ptc.parse_cmd_id() code, data = ptc.execute(cmd_id) self._send_client(code, data) if not self._server.slave and cmd_id in protocol.SLAVE_SYNC_SEND_CMDS: self._server.slavepool.spawn(self.slave_command_send, buf)