def _doChildConnect(name, transport): """当server节点连接到master的处理 """ server_config = GlobalObject().json_config.get('servers', {}).get(name, {}) remoteport = server_config.get('remoteport', []) child_host = transport.broker.transport.client[0] root_list = [rootport.get('rootname') for rootport in remoteport] GlobalObject().remote_map[name] = { "host": child_host, "root_list": root_list } # 通知有需要连的node节点连接到此root节点 for servername, remote_list in GlobalObject().remote_map.items(): remote_host = remote_list.get("host", "") remote_name_host = remote_list.get("root_list", "") if name in remote_name_host: GlobalObject().root.callChild(servername, "remote_connect", name, remote_host) # 查看当前是否有可供连接的root节点 master_node_list = GlobalObject().remote_map.keys() for root_name in root_list: if root_name in master_node_list: root_host = GlobalObject().remote_map[root_name]['host'] GlobalObject().root.callChild(name, "remote_connect", root_name, root_host)
def _doChildConnect(name,transport): """当server节点连接到master的处理 """ server_config = GlobalObject().json_config.get('servers',{}).get(name,{}) remoteport = server_config.get('remoteport',[]) child_host = transport.broker.transport.client[0] root_list = [rootport.get('rootname') for rootport in remoteport] GlobalObject().remote_map[name] = {"host":child_host,"root_list":root_list} #通知有需要连的node节点连接到此root节点 for serverName,remote_list in GlobalObject().remote_map.items(): remote_host = remote_list.get("host","") remote_name_host = remote_list.get("root_list","") if name in remote_name_host: GlobalObject().root.callChild(serverName,"remote_connect",name,remote_host) #查看当前是否有可供连接的root节点 master_node_list = GlobalObject().remote_map.keys() for root_name in root_list: if root_name in master_node_list: root_host = GlobalObject().remote_map[root_name]['host'] GlobalObject().root.callChild(name,"remote_connect",root_name,root_host)
def _doChildConnect(name,transport): """当server节点连接到master的处理 """ server_config = GlobalObject().json_config.get('servers',{}).get(name,{}) # servers下的gate dbfront net admin game1 等模块 remoteport = server_config.get('remoteport',[]) # 获得 remoteport(gate的port)[{"rootport":"10000", "rootname":"gate"}] child_host = transport.broker.transport.client[0] # 子节点主机地址 root_list = [rootport.get('rootname') for rootport in remoteport] # 如果有多个{},就获取多个rootname GlobalObject().remote_map[name] = {"host":child_host,"root_list":root_list} # map 映射 #通知有需要连的node节点连接到此root节点 for servername,remote_list in GlobalObject().remote_map.items(): remote_host = remote_list.get("host","") # 获得 远程子节点的主机地址 remote_name_host = remote_list.get("root_list","") # 获得 远程子节点的名字 if name in remote_name_host: # 可连接 # 子节点主机地址 "remote_connect" root节点名 root主机地址 GlobalObject().root.callChild(servername,"remote_connect",name,remote_host) #查看当前是否有可供连接的root节点 master_node_list = GlobalObject().remote_map.keys() # 远程节点列表 for root_name in root_list: # server节点的root if root_name in master_node_list: # 可连接 root_host = GlobalObject().remote_map[root_name]['host'] # root的主机地址 # 子节点主机地址 "remote_connect" root节点名 root主机地址 GlobalObject().root.callChild(name,"remote_connect",root_name,root_host)
from portal.command_table import init_command from portal.protocol import DataPacker from portal.process import user_login from portal.process import user_logout from portal.process import data_received #初始化 command id 表 command_file = GlobalObject().json_config.get("command_data") init_command(command_file) #定制 Factory 的方法 GlobalObject().netfactory.doDataReceived = data_received GlobalObject().netfactory.doConnectionMade = user_login GlobalObject().netfactory.doConnectionLost = user_logout #初始化 token redis _token_redis_conf = GlobalObject().cache_config.get("token_redis") TokenRedisAgent().connect(_token_redis_conf.get('ip'), _token_redis_conf.get('port'), _token_redis_conf.get('db'), _token_redis_conf.get('password')) #配置数据解析协议 dataprotocl = DataPacker() GlobalObject().netfactory.setDataProtocl(dataprotocl) import portal.service import portal.forward logger.trace("Load portal module succeed")
Created on 2016-05-17 @Author: jiangtaoran([email protected]) @Brief : Unit 模块逻辑入口 """ from twisted.internet import reactor from firefly.server.globalobject import GlobalObject from utils import logger from datalib.data_proxy4redis import DataRedisAgent from datalib.data_loader import load_data from datalib.table import TableDescription from datalib.global_data import DataBase from unit.city_view import CityData import unit.service _redis_conf = GlobalObject().cache_config.get('data_redis') DataRedisAgent().connect(_redis_conf.get('ip'), _redis_conf.get('port'), _redis_conf.get('db'), _redis_conf.get('password')) _data_conf = GlobalObject().json_config.get('dataconf') load_data(_data_conf) _table_conf = GlobalObject().json_config.get("tableconf") table = TableDescription() table.parse(_table_conf) GlobalObject().table_desc = table DataBase().register_datatype(CityData) logger.trace("Load Unit module succeed")
from utils.chat_pool import ChatPool from datalib.data_proxy4redis import DataRedisAgent from datalib.data_loader import load_data from datalib.table import TableDescription from datalib.global_data import DataBase from app.user_view import UserData from app.basic_view import BasicData from app.core.pay import PayRedisAgent from app.data.cdkey import CDkeyRedisAgent import app.service from app.business import event from app.core.pay import PayLogic #初始化 Redis 连接 _redis_conf = GlobalObject().cache_config.get('data_redis') DataRedisAgent().connect(_redis_conf.get('ip'), _redis_conf.get('port'), _redis_conf.get('db'), _redis_conf.get('password')) _pay_redis_conf = GlobalObject().cache_config.get('pay_redis') PayRedisAgent().connect(_pay_redis_conf.get('ip'), _pay_redis_conf.get('port'), _pay_redis_conf.get('db'), _pay_redis_conf.get('password')) _cdkey_redis_conf = GlobalObject().cache_config.get('cdkey_redis') CDkeyRedisAgent().connect(_cdkey_redis_conf.get('ip'), _cdkey_redis_conf.get('port'), _cdkey_redis_conf.get('db'), _cdkey_redis_conf.get('password')) #读入所有 Excel _data_conf = GlobalObject().json_config.get('dataconf')
defer_data = target(targetKey, *args, **kw) if not defer_data: return None if isinstance(defer_data, defer.Deferred): return defer_data d = defer.Deferred() d.callback(defer_data) finally: self._lock.release() return d ########################################################################################### msgdistribute = GlobalObject().json_config.get("msgdistribute") msgrule = msgdistribute.get('rule') msgdefault = msgdistribute.get('default') servername = GlobalObject().json_config.get("name") iswebsocket = GlobalObject().json_config.get("iswebsocket", False) if iswebsocket: GlobalObject().netfactory.protocol = websocket.WebSocketHandler logpath = GlobalObject().json_config.get('log') servername = GlobalObject().json_config.get('name') if logpath: if logpath: log.addObserver(loogoo(logpath)) #日志处理 log.startLogging(sys.stdout) ########################################################################################### netservice = NetCommandService("loginService")