def run(self):
     logger.info('jinglianThread %s start, will jinglian to level %d'%(Eid, Level))
     if Delay_Time > 0:
         logger.info('I will start jinglian at ' + util.next_time(Delay_Time))
         time.sleep(Delay_Time)
     level = 0
     while level < Level:
         res = util.send_command('jinglianEquip', Eid)
         if res is not None:
             sp = 298
             if res.has_key('exception'):
                 msg = res['exception']['message']
                 if msg == 'upFail':
                     logger.info('jinglian fail')
                 elif msg == 'CDTimeNotCool':
                     time.sleep(2)
                     gi = GeneralInfo()
                     cd = gi.get_jinglian_CDTime()
                     stime = gi.get_serverTime()
                     if cd > stime:
                         sp = cd - stime + 1
                         logger.info('I will sleep CD to %s'%(util.next_time(sp)))
                         time.sleep(sp)
                     else:
                         time.sleep(2)
                     continue
                 else:
                     logger.info('got Exception %s, exit'%(msg))
                     sys.exit()
             else:
                 level = int(res['userEquip']['starLevel'])
                 logger.info('jinglian to level %d'%(level))
                 if level >= Level:
                     sys.exit()
                 sp = 2
             logger.info('next round will start at ' + util.next_time(sp))
             time.sleep(sp)
         else:
             sp = 2
             logger.info('network error, will start at ' + util.next_time(sp))
             time.sleep(sp)