Предположим, у меня есть очередь, в которой каждый элемент представляет клиента, ожидающего выполнения своего заказа. Как мне реализовать модуль времени 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)