Beispiel #1
0
 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)
Beispiel #2
0
    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)