def create_service(self, room_id,indoor_temp): curtime = time.strftime('%Y-%m-%d') self.day_in.setdefault(room_id, curtime) self.TimesOfOnoff.setdefault(room_id, 0) self.TimesOfChangetemp.setdefault(room_id, 0) self.TimesOfChangespeed.setdefault(room_id, 0) self.TimesOfDispatch.setdefault(room_id, 0) service = Service(indoor_temp) # service_id记录每一次服务 service_id = self.max_service_id+1 self.max_service_id += 1 self.lists.append([int(room_id), service_id]) flag=-1 # 执行策略 ...... if(self.sq.get_service_num()<self.max_service): self.sq.append_service(service_id, service) flag=2 else: flag=1 lowest_id,lowest_speed=self.sq.get_lowest_speed_service() #print(lowest_id) if service.fan_speed>lowest_speed : if(len(lowest_id)==1): move_id,move_service=self.sq.move_service(lowest_id[0]) #分配等待服务时间 move_service.set_wait_time(self.wait_time) #移入等待队列 self.wq.append_service(move_id,move_service) #移入服务队列 self.sq.append_service(service_id, service) else: #print(lowest_id) longest_id=self.sq.get_longest_service_in_list(lowest_id) #print(longest_id) move_id, move_service = self.sq.move_service(longest_id[0]) # 分配等待服务时间 move_service.set_wait_time(self.wait_time) # 移入等待队列 self.wq.append_service(move_id, move_service) # 移入服务队列 self.sq.append_service(service_id, service) elif service.fan_speed==lowest_speed: # 分配等待服务时间 service.set_wait_time(self.wait_time) # 移入等待队列 self.wq.append_service(service_id, service) elif service.fan_speed<lowest_speed: # 分配等待服务时间 service.set_wait_time(self.max_wait_time) # 移入等待队列 self.wq.append_service(service_id, service) return flag