示例#1
0
文件: net.py 项目: eicesoft/pycached
    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)