def insereClient(self, client, tipo_servico): if self.estado < self.numero_de_maquinas: # Se servico livre(se estado menor que numero de atendedores) self.estado += 1 # Fica ocupado e agenda saida do cliente self.simulator.insereEvento( eventos.Saida( self.simulator.instant + Aleatorio.normal( self.media_serv, self.desvio_padrao, self.seed)[0], self.simulator, tipo_servico, client, self)) else: self.fila.append( client ) # Se servico ocupado, o cliente vai para a fila de espera
def removeClient(self, tipo_servico): self.atendidos += 1 # Regista que acabou de atender + 1 cliente if not self.fila: # Se a fila esta vazia, self.estado -= 1 # liberta o servico else: # vai buscar proximo cliente a fila de espera e agenda a sua saida if self.aux_rand == 0: ran = Aleatorio.normal(self.media_serv, self.desvio_padrao, self.seed) random_number = ran[0] self.aux_rand = ran[1] else: random_number = self.aux_rand self.aux_rand = 0 self.simulator.insereEvento( eventos.Saida(self.simulator.instant + random_number, self.simulator, tipo_servico, self.fila.pop(0), self))