def registe_madmin(): """注册数据库与memcached对应 """ MAdminManager().registe(memmode.tb_character_admin) MAdminManager().registe(memmode.tb_zhanyi_record_admin) MAdminManager().registe(memmode.tbitemadmin) MAdminManager().registe(memmode.tb_matrix_amin)
def registe_madmin(): ''' ''' MAdminManager().registe(memmode.tb_character_admin) MAdminManager().registe(memmode.tb_player_admin) MAdminManager().registe(memmode.tb_item_admin) MAdminManager().registe(memmode.tb_zen_admin)
def doWhenStop(): """服务器关闭前的处理 """ print "##############################" print "##########checkAdmins#############" print "##############################" MAdminManager().checkAdmins()
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()
def setUp(self): config = json.load(open('../config.json', 'r')) def init(): hostname = "127.0.0.1" # 要连接的数据库主机名 user = "******" # 要连接的数据库用户名 password = "******" # 要连接的数据库密码 port = 3306 # 3306 是MySQL服务使用的TCP端口号,一般默认是3306 dbname = "traversing_1" # 要使用的数据库库名 charset = "utf8" # 要使用的数据库的编码 dbpool.initPool( host=hostname, user=user, passwd=password, port=port, db=dbname, charset=charset ) ##firefly重新封装的连接数据库的方法,这一步就是初始化数据库连接池,这样你就可连接到你要使用的数据库了 init() client = RedisClient() mmanager = MAdminManager() GlobalObject().json_model_config = config.get("models") redis_manager.connection_setup(config.get("memcached").get("urls")) m1 = redis_mode.MAdmin('tb_character_hero', 'id') m1.insert() data = { 'hero_no': 10001, 'character_id': 106, 'level': 9, 'break_level': 10, 'exp': 11, 'equipment_ids': '' } self.hero_mmode = m1.new(data) self.hero = Hero(1) self.hero.level = 12306
def check_mem_db(delta): """同步内存数据到数据库 """ MAdminManager().checkAdmins() reactor.callLater(delta, check_mem_db, delta)
def register_madmin(): """注册数据库与memcached对应 """ # 用户信息表 MAdminManager().registe(memmode.tb_character_info) # 英雄信息表 MAdminManager().registe(memmode.tb_character_hero) # 用户英雄碎片信息表 MAdminManager().registe(memmode.tb_character_hero_chip) # 用户道具背包 MAdminManager().registe(memmode.tb_character_item_package) # 帐号表 MAdminManager().registe(memmode.tb_account) # 用户阵容信息 MAdminManager().registe(memmode.tb_character_line_up) # 装备碎片表 MAdminManager().registe(memmode.tb_character_equipment_chip) # 装备信息表 MAdminManager().registe(memmode.tb_equipment_info) # friend表 MAdminManager().registe(memmode.tb_character_friend) # 公会信息表 MAdminManager().registe(memmode.tb_guild_info) # 玩家公会表 MAdminManager().registe(memmode.tb_guild_name) # 玩家公会表 MAdminManager().registe(memmode.tb_character_guild) # 玩家活动表 MAdminManager().registe(memmode.tb_character_activity) # 主将信息表 MAdminManager().registe(memmode.tb_character_lord) # 关卡信息表 MAdminManager().registe(memmode.tb_character_stages) # 邮件表 MAdminManager().registe(memmode.tb_mail_info) #活跃度 MAdminManager().registe(memmode.tb_character_tasks)
def CheckMemDB(delta): """同步内存数据到数据库 """ MAdminManager().checkAdmins() reactor.callLater(delta, CheckMemDB, delta)
def __init__(self): self._users = {} # 玩家字典 self.memUsers = MAdmin("tb_user", "acc") # 玩家表mem实例 self.memUsers.insert() MAdminManager().registe(self.memUsers) return
def init(): hostname = "127.0.0.1" # 要连接的数据库主机名 user = "******" # 要连接的数据库用户名 password = "******" # 要连接的数据库密码 port = 3306 # 3306 是MySQL服务使用的TCP端口号,一般默认是3306 dbname = "traversing_1" # 要使用的数据库库名 charset = "utf8" # 要使用的数据库的编码 dbpool.initPool(host=hostname, user=user, passwd=password, port=port, db=dbname, charset=charset) ##firefly重新封装的连接数据库的方法,这一步就是初始化数据库连接池,这样你就可连接到你要使用的数据库了 init() client = RedisClient() mmanager = MAdminManager() GlobalObject().json_model_config = config.get("models") redis_manager.connection_setup(config.get("memcached").get("urls")) m1 = redis_mode.MAdmin('tb_char_hero', 'id', incrkey='id') m1.insert() print "#1 _incrvalue", m1.get('_incrvalue') data = {'hero_no': '10001', 'characterid': 106, 'level': 9, 'break_level': 10, 'exp': 11, 'equipment_ids': ''} obj1 = m1.new(data) print 'obj #1:', obj1.__dict__
def CheckMemDB(delta): ''' ''' MAdminManager().checkAdmins() reactor.callLater(delta, CheckMemDB, delta)