in elastic/shared/schedulers/query.py [0:0]
def next(self, current):
if self.first:
self.logger.info(
"Seeding query scheduler with [%s] for workflow [%s]",
self.parameter_source.random_seed,
self.parameter_source.task_offset,
)
self._random_generator = random.Random(self.parameter_source.random_seed)
self.first = False
# we offset the initial task execution
current = current + ((self.parameter_source.task_offset / self.parameter_source.number_of_tasks) * self.workflow_rate)
if self.parameter_source.current_index == 0:
delay = self._random_generator.expovariate(self.workflow_rate)
self.logger.info(
"Workflow [%s] will use interval [%s] and scheduled for [%s]",
self.parameter_source.task_offset,
delay,
current + delay,
)
return current + delay
delay = self._random_generator.expovariate(self.think_rate)
self.logger.info(
"Actions for workflow [%s] will use think time of [%s] - next action scheduled for [%s]",
self.parameter_source.task_offset,
delay,
current + delay,
)
return current + delay