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 insereClient(self, client): """Método que insere cliente (client) no serviço""" if (self.estado < self.n_maquinas): #Se serviço livre, self.estado = self.estado + 1 #fica ocupado e #agenda saída do cliente c para daqui a self.media_serv instantes #self.simulator.insereEvento(eventos.Saida(self.simulator.instant + self.media_serv, self.simulator, self, client)) #sem randomizacao self.simulator.insereEvento( eventos.Saida(self.simulator.instant + self.variacao_normal(), self.simulator, self, client)) else: self.fila.append( client ) #Se serviço ocupado, o cliente vai para a fila de espera
def insereClient(self, client): # """Método que insere cliente (client) no serviço""" if len(self.servico) < self.n_servicos: # Se serviço livre, tempo_de_saida = self.simulator.instant + max( self.random_generator.normal(self.dist), 0) self.servico.append((client, tempo_de_saida)) sorted(self.servico, key=lambda servico: servico[1], reverse=True) self.simulator.insereEvento( eventos.Saida(tempo_de_saida, self.simulator, self)) else: self.fila.append( client ) # Se serviço ocupado, o cliente vai para a fila de espera
def removeClient(self): """Método que remove cliente do serviço""" self.atendidos = self.atendidos + 1 #Regista que acabou de atender + 1 cliente if (self.fila == []): #Se a fila está vazia, self.estado = self.estado - 1 # liberta o serviço else: #Se não, #vai buscar próximo cliente à fila de espera e client = self.fila.pop(0) #agenda a sua saida para daqui a self.media_serv instantes #self.simulator.insereEvento(eventos.Saida(self.simulator.instant + self.media_serv, self.simulator, self, client)) #sem randomizacao #self.simulator.insereEvento(eventos.Saida(self.simulator.instant + random.normalvariate(self.media_serv, self.desvio), self.simulator, self, client)) self.simulator.insereEvento( eventos.Saida(self.simulator.instant + self.variacao_normal(), self.simulator, self, client))
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))
def insereClient(self, client): self.act_stats() # """Método que insere cliente (client) no servi�o""" if (self.estado < self.num_servicos(client)): # Se servi�o livre, self.estado = self.estado + 1 # fica ocupado e # agenda saída do cliente c para daqui a self.simulator.media_serv instantes tmp_serv = self.tmp_serv(client) al = aleatorio.Aleatorio().normal(self.seed, tmp_serv) #print('Valor aleatório: ', al) self.simulator.insereEvento( eventos.Saida(self.simulator.instant + al, self.simulator, self, client)) else: self.fila.append( client ) # Se servi�o ocupado, o cliente vai para a fila de espera
def removeClient(self, peca): self.act_stats() # """Método que remove cliente do serviço""" self.atendidos = self.atendidos + 1 # Regista que acabou de atender + 1 cliente if self.prox_fila: self.prox_fila.act_stats() self.prox_fila.insereClient(peca) if (self.fila == []): # Se a fila est� vazia, self.estado = self.estado - 1 # liberta o servi�o else: # Se não, # vai buscar pr�ximo cliente � fila de espera e cl = self.fila.pop(0) # agenda a sua saida para daqui a self.simulator.media_serv instantes al = aleatorio.Aleatorio().normal(self.seed, self.tmp_serv(cl)) self.simulator.insereEvento( eventos.Saida(self.simulator.instant + al, self.simulator, self, peca))