|
@@ -301,22 +301,21 @@ class AgentOperService:
|
|
traceback.print_exc()
|
|
traceback.print_exc()
|
|
|
|
|
|
def check_agent_live_daemon(_members):
|
|
def check_agent_live_daemon(_members):
|
|
- key = CENTER_AGENT_LIVE_CNT % SAAS_ID
|
|
|
|
- pre_val = self.redis_handler.redis.get(key)
|
|
|
|
- if not pre_val:
|
|
|
|
- if not _members or len(_members) == 0:
|
|
|
|
- value = datetime.now().timestamp()
|
|
|
|
- self.redis_handler.redis.set(key, value, ex=60*60, nx=True)
|
|
|
|
|
|
+ _key = CENTER_AGENT_LIVE_CNT % SAAS_ID
|
|
|
|
+ pre_time = self.redis_handler.redis.get(_key)
|
|
|
|
+ if not pre_time or not _members or len(_members) == 0:
|
|
|
|
+ _value = datetime.now().timestamp()
|
|
|
|
+ self.redis_handler.redis.set(_key, _value, ex=60*60, nx=True)
|
|
else:
|
|
else:
|
|
- diff = datetime.now().timestamp() - float(pre_val)
|
|
|
|
- # self.logger.info('check_agent_live_daemon, members=%s, diff=%s, pre_val=%s', (len(_members) if _members else 0), diff, pre_val)
|
|
|
|
- if diff > self.agent_serial_live_expire:
|
|
|
|
|
|
+ _diff = datetime.now().timestamp() - float(pre_time)
|
|
|
|
+ if _diff > self.agent_serial_live_expire:
|
|
|
|
+ self.logger.info('check_agent_live_daemon, members=%s, diff=%s, pre_time=%s', (len(_members) if _members else 0), _diff, pre_time)
|
|
self.logger.warn('WARING::live agent count less than 1 serial ten minutes')
|
|
self.logger.warn('WARING::live agent count less than 1 serial ten minutes')
|
|
self.data_handle_server.create_warning_record(1, '10分钟空岗报警')
|
|
self.data_handle_server.create_warning_record(1, '10分钟空岗报警')
|
|
- self.redis_handler.redis.delete(key)
|
|
|
|
|
|
+ self.redis_handler.redis.delete(_key)
|
|
|
|
|
|
if _members and len(_members) > 0:
|
|
if _members and len(_members) > 0:
|
|
- self.redis_handler.redis.delete(key)
|
|
|
|
|
|
+ self.redis_handler.redis.delete(_key)
|
|
|
|
|
|
name = CENTER_AGENT_HEARTBEAT % SAAS_ID
|
|
name = CENTER_AGENT_HEARTBEAT % SAAS_ID
|
|
members = self.redis_handler.redis.hgetall(name)
|
|
members = self.redis_handler.redis.hgetall(name)
|
|
@@ -924,8 +923,8 @@ class AgentStateService:
|
|
|
|
|
|
def handle_release_agent_lock(self, choose_phone_num, saas_id, service_id='00000000000000000'):
|
|
def handle_release_agent_lock(self, choose_phone_num, saas_id, service_id='00000000000000000'):
|
|
key = self._lock_key(saas_id, service_id, choose_phone_num)
|
|
key = self._lock_key(saas_id, service_id, choose_phone_num)
|
|
- self.redis_handler.redis.delete(key)
|
|
|
|
- # self.redis_handler.redis.expire(key, 3)
|
|
|
|
|
|
+ # self.redis_handler.redis.delete(key)
|
|
|
|
+ self.redis_handler.redis.expire(key, 5)
|
|
self.logger.info('releaseAgent %s %s %s'% (saas_id, service_id, choose_phone_num))
|
|
self.logger.info('releaseAgent %s %s %s'% (saas_id, service_id, choose_phone_num))
|
|
|
|
|
|
def handle_assign_time(self, saas_id, service_id, choose_phone_num):
|
|
def handle_assign_time(self, saas_id, service_id, choose_phone_num):
|