Python вычисляет среднее время ожидания в очереди - PullRequest
0 голосов
/ 05 ноября 2019

Предположим, у меня есть очередь, в которой каждый элемент представляет клиента, ожидающего выполнения своего заказа. Как мне реализовать модуль времени Python, чтобы увеличить время ожидания, если большее количество клиентов накапливается, уменьшить время ожидания, если клиенты обслужены.

import time
class Queue:
    #Constructor creates a list
    def __init__(self):
        self.queue = list()
        self.start_time = 0
        self.start_time2 = 0

    #Adding elements to queue
    def enqueue(self,data):
      #Checking to avoid duplicate entry (not mandatory)
        if data not in self.queue:
            self.queue.insert(0,data)
            if self.start_time != 0:
                self.start_time2 = time.time()
                self.start_time += self.start_time2

            self.start_time = time.time()
            return True
        return False


    #Removing the last element from the queue
    def dequeue(self):
        if len(self.queue)>0:
            #calculate time between ordering and serving: 
            elapsed_time = time.time() - self.start_time
            print('Order took', elapsed_time)
            #decrease current waiting time
            self.start_time = self.start_time - elapsed_time
            print('Current waiting time is', self.start_time)
            return self.queue.pop()
        return ("Queue Empty!")

    #Getting the size of the queue
    def size(self):
        return len(self.queue)

    #printing the elements of the queue
    def printQueue(self):
        return self.queue

    def time(self):
        start_time = time.time()
        elapsed_time = time.time() - start_time
        time.strftime("%H:%M:%S", time.gmtime(elapsed_time))

customerQueue = Queue()
customerQueue.enqueue('Test1')
customerQueue.enqueue('Test2')
customerQueue.enqueue('Test3')
print(customerQueue.queue)
customerQueue.dequeue()
print(customerQueue.queue)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...