def guest_state_report_engine(self): """ Guest 状态上报引擎 """ guest_state_mapping = dict() while True: if Utils.exit_flag: msg = 'Thread guest_state_report_engine say bye-bye' print msg logger.info(msg=msg) return try: # 3 秒钟更新一次 time.sleep(config['engine_cycle_interval'] * 3) threads_status['guest_state_report_engine'] = { 'timestamp': ji.Common.ts() } self.refresh_dom_mapping() for uuid, dom in self.dom_mapping_by_uuid.items(): state = Guest.get_state(dom=dom) if uuid in guest_state_mapping and guest_state_mapping[ uuid] == state: continue guest_state_mapping[uuid] = state Guest.guest_state_report(dom=dom) except: log_emit.warn(traceback.format_exc())