예제 #1
0
def old_test():
    address = ["127.0.0.1:11211"]  #要连接的Memcached的主机地址端口号
    hostname = "localhost"  #要连接的Memcached的主机名
    mclient.connect(address, hostname)  #firefly重新封装的连接Memcached的方法,这样你就可连接到你要使用的Memcached

    tower_info = MAdmin("tb_tower_info", "id")  #实例化一个MAdmin管理器,用来管理player表中的数据,player是你要管理的表名,id是该表的主键
    #不清楚MAdmin是什么的童鞋请移步http://firefly.9miao.com/wiki/index.htm,wiki里面有个dbentrust使用文档,里面详细说明了firefly自定义的几个类与数据库之间的关联
    tower_info.insert()  #将管理器player注册到memcached中

    tower_info.load()  #一次性从数据库中将player表中所有数据读取到memcached中,如果不写本句,player只是一个空模型,没有数据,第一次取值时会到数据库中取出此次需要的数据并加载到memcached中,
    #如果第二次取值同第一次相同,则在memcached中取,否则需要再次同数据库建立连接进行取值

    m = tower_info.getObj(1)  #取出player表中主键(本例为id)为100001的这条数据对象(Mmode)
    data = m.get("data")  #获取数据对象m里面包含的信息
    print data  #打印信息

    data = {'name': u'haha', 'monsterdesc': u'1213', 'level': 30L, 'expbound': 10000L, 'dropoutid': 4001L, 'matrixid': 100001L, 'rule': u'[[4001,4001,4001,4001,4001],[1,3,5,7,9]]', 'boundinfo': u'sdfsadfas', 'id': 2}

    n = tower_info.new(data)
    n.insert()


    m = tower_info.getObj(2)
    data = m.get("data")
    print data

    MAdminManager().registe(tower_info)
    MAdminManager().checkAdmins()
예제 #2
0
def old_test():
    address = ["127.0.0.1:11211"]  #要连接的Memcached的主机地址端口号
    hostname = "localhost"  #要连接的Memcached的主机名
    mclient.connect(
        address, hostname)  #firefly重新封装的连接Memcached的方法,这样你就可连接到你要使用的Memcached

    tower_info = MAdmin(
        "tb_tower_info",
        "id")  #实例化一个MAdmin管理器,用来管理player表中的数据,player是你要管理的表名,id是该表的主键
    #不清楚MAdmin是什么的童鞋请移步http://firefly.9miao.com/wiki/index.htm,wiki里面有个dbentrust使用文档,里面详细说明了firefly自定义的几个类与数据库之间的关联
    tower_info.insert()  #将管理器player注册到memcached中

    tower_info.load(
    )  #一次性从数据库中将player表中所有数据读取到memcached中,如果不写本句,player只是一个空模型,没有数据,第一次取值时会到数据库中取出此次需要的数据并加载到memcached中,
    #如果第二次取值同第一次相同,则在memcached中取,否则需要再次同数据库建立连接进行取值

    m = tower_info.getObj(1)  #取出player表中主键(本例为id)为100001的这条数据对象(Mmode)
    data = m.get("data")  #获取数据对象m里面包含的信息
    print data  #打印信息

    data = {
        'name': u'haha',
        'monsterdesc': u'1213',
        'level': 30L,
        'expbound': 10000L,
        'dropoutid': 4001L,
        'matrixid': 100001L,
        'rule': u'[[4001,4001,4001,4001,4001],[1,3,5,7,9]]',
        'boundinfo': u'sdfsadfas',
        'id': 2
    }

    n = tower_info.new(data)
    n.insert()

    m = tower_info.getObj(2)
    data = m.get("data")
    print data

    MAdminManager().registe(tower_info)
    MAdminManager().checkAdmins()
예제 #3
0
    def config(self, config, servername=None, dbconfig=None,
               memconfig=None, redis_config=None, masterconf=None, model_default_config=None,
               model_config=None):
        """配置服务器"""
        GlobalObject().json_config = config
        GlobalObject().json_model_config = model_default_config
        GlobalObject().json_model_config = model_config
        netport = config.get('netport')  # 客户端连接
        webport = config.get('webport')  # http连接
        rootport = config.get('rootport')  # root节点配置
        self.remoteportlist = config.get('remoteport', [])  # remote节点配置列表
        if not servername:
            servername = config.get('name')  # 服务器名称
        logpath = config.get('log')  # 日志
        hasdb = config.get('db')  # 数据库连接
        hasmem = config.get('mem')  # memcached连接
        hasredis = config.get('redis') # redis连接
        app = config.get('app')  # 入口模块名称
        cpuid = config.get('cpu')  # 绑定cpu
        mreload = config.get('reload')  # 重新加载模块名称
        self.servername = servername

        if logpath:
            log_init(logpath)  # 日志处理

        if netport:
            self.netfactory = LiberateFactory()
            netservice = services.CommandService("netservice")
            self.netfactory.addServiceChannel(netservice)
            reactor.listenTCP(netport, self.netfactory)

        if webport:
            self.webroot = Flask("master")
            GlobalObject().webroot = self.webroot
            self.webroot.debug = True
            # reactor.listenTCP(webport, self.webroot)
            reactor.listenWSGI(webport, self.webroot)

        if rootport:
            self.root = PBRoot()
            rootservice = services.Service("rootservice")
            self.root.addServiceChannel(rootservice)
            reactor.listenTCP(rootport, BilateralFactory(self.root))

        for cnf in self.remoteportlist:
            rname = cnf.get('rootname')
            self.remote[rname] = RemoteObject(self.servername)

        if hasdb and dbconfig:
            # logger.info(str(dbconfig))
            dbpool.initPool(**dbconfig)

        if hasmem and memconfig:
            urls = memconfig.get('urls')
            hostname = str(memconfig.get('hostname'))
            mclient.connect(urls, hostname)

        if hasredis and redis_config:
            host = redis_config.get("host")
            port = redis_config.get("port")
            db = redis_config.get("db", 0)
            redis_client.connect(host, port, db)

        if cpuid:
            affinity.set_process_affinity_mask(os.getpid(), cpuid)
        GlobalObject().config(netfactory=self.netfactory, root=self.root,
                              remote=self.remote)
        if app:
            __import__(app)
        if mreload:
            _path_list = mreload.split(".")
            GlobalObject().reloadmodule = __import__(mreload, fromlist=_path_list[:1])
        GlobalObject().remote_connect = self.remote_connect

        if masterconf:
            masterport = masterconf.get('rootport')
            masterhost = masterconf.get('roothost')
            self.master_remote = RemoteObject(servername)
            addr = ('localhost', masterport) if not masterhost else (masterhost, masterport)
            self.master_remote.connect(addr)
            GlobalObject().masterremote = self.master_remote

        import admin
예제 #4
0
    MAdminManager().registe(tower_info)
    MAdminManager().checkAdmins()



mconfig = json.load(open('../models.json', 'r'))
model_config = mconfig.get('models', {})
GlobalObject().json_model_config = model_config
GlobalObject().json_model_default_config = {}



address = ["127.0.0.1:11211"]  #要连接的Memcached的主机地址端口号
hostname = "mem"  #要连接的Memcached的主机名
mclient.connect(address, hostname)  #firefly重新封装的连接Memcached的方法,这样你就可连接到你要使用的Memcached


# 用户信息表
tb_character_info = MAdmin('tb_character_info', 'id')
tb_character_info.insert()

# 英雄信息表
tb_character_hero = MAdmin('tb_character_hero', 'id', 1800, fk='character_id')
tb_character_hero.insert()

character = tb_character_info.getObj(1037)
print character

print tb_character_hero.getObj('1037_10001')
tb_character_hero.loadByFK(1037)
예제 #5
0
    m = tower_info.getObj(2)
    data = m.get("data")
    print data

    MAdminManager().registe(tower_info)
    MAdminManager().checkAdmins()


mconfig = json.load(open('../models.json', 'r'))
model_config = mconfig.get('models', {})
GlobalObject().json_model_config = model_config
GlobalObject().json_model_default_config = {}

address = ["127.0.0.1:11211"]  #要连接的Memcached的主机地址端口号
hostname = "mem"  #要连接的Memcached的主机名
mclient.connect(address,
                hostname)  #firefly重新封装的连接Memcached的方法,这样你就可连接到你要使用的Memcached

# 用户信息表
tb_character_info = MAdmin('tb_character_info', 'id')
tb_character_info.insert()

# 英雄信息表
tb_character_hero = MAdmin('tb_character_hero', 'id', 1800, fk='character_id')
tb_character_hero.insert()

character = tb_character_info.getObj(1037)
print character

print tb_character_hero.getObj('1037_10001')
tb_character_hero.loadByFK(1037)
print tb_character_hero.getObj('1037_10002')
예제 #6
0
파일: server.py 프로젝트: 9miao/Firefly
 def config(self, config, servername=None, dbconfig=None,
             memconfig=None, masterconf=None):
     '''配置服务器
     '''
     GlobalObject().json_config = config
     netport = config.get('netport')#客户端连接
     webport = config.get('webport')#http连接
     rootport = config.get('rootport')#root节点配置
     self.remoteportlist = config.get('remoteport',[])#remote节点配置列表
     if not servername:
         servername = config.get('name')#服务器名称
     logpath = config.get('log')#日志
     hasdb = config.get('db')#数据库连接
     hasmem = config.get('mem')#memcached连接
     app = config.get('app')#入口模块名称
     cpuid = config.get('cpu')#绑定cpu
     mreload = config.get('reload')#重新加载模块名称
     self.servername = servername
         
     if netport:
         self.netfactory = LiberateFactory()
         netservice = services.CommandService("netservice")
         self.netfactory.addServiceChannel(netservice)
         reactor.listenTCP(netport,self.netfactory)
         
     if webport:
         self.webroot = Flask("servername")
         GlobalObject().webroot = self.webroot
         reactor.listenWSGI(webport, self.webroot)
         
     if rootport:
         self.root = PBRoot()
         rootservice = services.Service("rootservice")
         self.root.addServiceChannel(rootservice)
         reactor.listenTCP(rootport, BilateralFactory(self.root))
         
     for cnf in self.remoteportlist:
         rname = cnf.get('rootname')
         self.remote[rname] = RemoteObject(self.servername)
         
     if hasdb and dbconfig:
         log.msg(str(dbconfig))
         dbpool.initPool(**dbconfig)
         
     if hasmem and memconfig:
         urls = memconfig.get('urls')
         hostname = str(memconfig.get('hostname'))
         mclient.connect(urls, hostname)
         
     if logpath:
         log.addObserver(loogoo(logpath))#日志处理
     log.startLogging(sys.stdout)
     
     if cpuid:
         affinity.set_process_affinity_mask(os.getpid(), cpuid)
     GlobalObject().config(netfactory = self.netfactory, root=self.root,
                 remote = self.remote)
     
     if masterconf:
         masterport = masterconf.get('rootport')
         masterhost = masterconf.get('roothost')
         self.master_remote = RemoteObject(servername)
         addr = ('localhost',masterport) if not masterhost else (masterhost,masterport)
         self.master_remote.connect(addr)
         GlobalObject().masterremote = self.master_remote
     import admin
     
     if app:
         __import__(app)
     if mreload:
         _path_list = mreload.split(".")
         GlobalObject().reloadmodule = __import__(mreload,fromlist=_path_list[:1])
     GlobalObject().remote_connect = self.remote_connect