def _getMissionCache(self,action=''): '''获取任务缓存''' activeMission = Gcore.getUserData(self.uid,'ActiveMission')#缓存查询 if (activeMission is None) or (not isinstance(activeMission,dict)): myLog = Gcore.getLogger('zhanggh','mission') myLog.error("任务缓存有异常,UserId:%s,动作:%s,用户缓存内容:"%(self.uid,action)) myLog.error( Gcore.StorageUser.get(self.uid)) activeMission = self.db.out_rows('tb_mission',['MissionId','GetValue'],'UserId=%s AND Status in (1,2)'%self.uid) activeMission = {k['MissionId']:k for k in activeMission} Gcore.setUserData(self.uid,{'ActiveMission':activeMission}) return activeMission
def _getAchieveCache(self,action=''): '''获取成就缓存''' activeAchieve = Gcore.getUserData(self.uid, 'ActiveAchieve')#缓存活跃成就 if (activeAchieve is None) or (not isinstance(activeAchieve,list or tuple)): myLog = Gcore.getLogger('zhanggh','achieve') myLog.error("成就缓存有异常,UserId:%s,动作:%s,用户缓存内容:"%(self.uid,action)) myLog.error( Gcore.StorageUser.get(self.uid)) activeAchieve = self.getAchievements() activeAchieve = [k for k in activeAchieve if activeAchieve[k]['Finished']==0] Gcore.setUserData(self.uid,{'ActiveAchieve':activeAchieve}) return activeAchieve
def main(): port = Setting.getGatewayPort() if not port: port = Cfg.CFG_GATEWAYSERV_PORT _pool = gevent.pool.Pool() service = Service() server = Server(('0.0.0.0', int(port)), handle=service.handle, spawn=_pool.spawn) #=========================================================== import signal logger = Gcore.getLogger('server', 'server') def close_server(): logger.warning('I got a signal.SIGUSR1 going to stop battle server') server.stop(180) def reload_server(): Gcore.reload() logger.warning('I got a signal.SIGUSR2, battle server Gcore reload()') def hook_signal(): '''捕获信号''' if os.name == 'nt': return #信号10-关服 gevent.signal(signal.SIGUSR1, close_server) #信号12-重载 gevent.signal(signal.SIGUSR2, reload_server) hook_signal() #===================================================================== message.sub(Server.NEW_CONNECTION, service.new_connection) message.sub(Server.LOST_CONNECTION, service.lost_connection) app = Application(server) print '=' * 50 print '=', ' ' * 15, 'Server Started', ' ' * 15, '=' print '=' * 50 app.run() if pid_file: with open(pid_file, 'wb') as fd: fd.write('0')
def signal_handle(sign_num, frame): import signal logger = Gcore.getLogger('system', 'server') if sign_num == signal.SIGBUS: server.stop(180) logger.warning('I got a signal.SIGBUS server stop') sys.exit(-1) elif sign_num == signal.SIGTERM: server.stop(180) logger.warning('I got a signal.SIGTERM server stop') elif sign_num == signal.SIGHUP: logger.warning('I got a signal.SIGHUP pass') pass elif sign_num == signal.SIGUSR1: #用户发送停止服务的指令 10 logger.warning('I got a signal.SIGUSR1 going to stop server') server.stop(180) elif sign_num == signal.SIGUSR2: # 12 Gcore.reload() logger.warning('I got a signal.SIGUSR2, Gcore reload()')
def main(): port = Setting.getGatewayPort() if not port: port = Cfg.CFG_BATTLESERV_PORT _pool = gevent.pool.Pool() service = Service() server = Server(('0.0.0.0', int(port) ), handle=service.handle, spawn=_pool.spawn) #=========================================================== import signal logger = Gcore.getLogger('server', 'server') def close_server(): logger.warning('I got a signal.SIGUSR1 going to stop server') server.stop(180) def reload_server(): Gcore.reload() logger.warning('I got a signal.SIGUSR2, Gcore reload()') def hook_signal(): '''捕获信号''' if os.name == 'nt': return #信号10-关服 gevent.signal(signal.SIGUSR1, close_server) #信号12-重载 gevent.signal(signal.SIGUSR2, reload_server) hook_signal() #===================================================================== message.sub(Server.NEW_CONNECTION, service.new_connection) message.sub(Server.LOST_CONNECTION, service.lost_connection) app = Application(server) print '=' * 50 print '=', ' '*15, 'Server Started', ' '*15, '=' print '=' * 50 app.run() if pid_file: with open(pid_file, 'wb') as fd: fd.write('0')