-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsource.py
27 lines (22 loc) · 1.07 KB
/
source.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import task
import numpy
import random
class Source:
def __init__(self, sourceNumber: int):
self.sourceNumber = sourceNumber # Номер источника
self.tasksGenerated = 0 # Количество сгенерированных задач
self.taskCanceled = 0 # Кол-во отмененных заявок
self.currPosition = 0 # Текушая позиция новой заявки
self.currDuration = 0 # Текущее время обработки заявки
self.lengthStep = 0 # Шаг между заявками
self.durations = []
self.taskWaitedTimes = []
def generateNewTask(self, taskId, Pos):
self.currPosition += self.lengthStep
self.tasksGenerated += 1
return task.Task(Pos, self.sourceNumber, taskId, self.currDuration)
def setDistribution(self, a: float, b: float):
self.lengthStep = numpy.random.uniform(a, b)
self.currPosition = self.lengthStep
def setNextDuration(self, lambda_):
self.currDuration = random.expovariate(lambda_)