From 4c6786e17ef724a0dfdfeca8cf4a36bc4a7b9898 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 15 二月 2019 15:17:26 +0800
Subject: [PATCH] 6211 【后端】【1.6】合服任务单(合服邮件、重置首充双倍、重置商店购买次数、设置合服命令SetMixServer)
---
Tool/Robot/Robot/RobotMgr.py | 21 +++++++++++++++++----
1 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/Tool/Robot/Robot/RobotMgr.py b/Tool/Robot/Robot/RobotMgr.py
index 7e88aae..e15e434 100644
--- a/Tool/Robot/Robot/RobotMgr.py
+++ b/Tool/Robot/Robot/RobotMgr.py
@@ -18,8 +18,8 @@
Thread.__init__(self, None, None, "AIThreadPy_%s"%index)
self.robotMgr = robotMgr
self.AIList = []
- #config = ConfigurationReader.ConfigIniReader.GetConfig()
-
+ config = ConfigurationReader.ConfigIniReader.GetConfig()
+ self.tjgLimitCnt = config.GetTJGLimitCnt()
self.lastTime = 0
self.badRobotCnt = 0 # 历史异常脱机挂个数
@@ -35,6 +35,11 @@
nowTime = time.time()
if self.lastLoginTime and nowTime - self.lastLoginTime > self.ProcessFindTJGTime:
+ logging.debug( "self.tjgLimitCnt %s " % self.tjgLimitCnt )
+ # 限制脱机挂登录数量, 没有实时的玩家上线后会补收益
+ if self.robotMgr.GetRobotCount() > self.tjgLimitCnt:
+ self.robotMgr.dbRobot.ClearToken()
+
self.lastLoginTime = nowTime
logoningList = self.robotMgr.GetRobotAccIDList() # 在登录的机器人
@@ -67,7 +72,11 @@
if index >= self.robotMgr.GetRobotCount():
# ProcessAI可能会清除了robot
break
- robot = self.robotMgr.GetRobot( index )
+ try:
+ robot = self.robotMgr.GetRobot( index )
+ except:
+ # 判断index防范不到,可能多线程引起,此处报错结束循环
+ break
if not robot:
continue
robot.GetAIMgr().ProcessAI()
@@ -79,7 +88,11 @@
# 队列中清理无效的脱机挂, 一次只清理一个
for index in xrange(self.robotMgr.GetRobotCount()):
#logging.debug( "Run AI for Index:%d", index )
- robot = self.robotMgr.GetRobot( index )
+ try:
+ robot = self.robotMgr.GetRobot( index )
+ except:
+ # 判断index防范不到,可能多线程引起,此处报错结束循环
+ break
if not robot:
print "====没有机器人"
self.robotMgr.Remove(robot)
--
Gitblit v1.8.0