def next()

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