Class IterationTimeBoundedBudget

    • Constructor Detail

      • IterationTimeBoundedBudget

        public IterationTimeBoundedBudget​(long initialDelay,
                                          long interval,
                                          int maxIterations,
                                          long maxDuration)
    • Method Detail

      • initialDelay

        public long initialDelay()
        Description copied from interface: Budget
        Defines an initial delay before running the task
        Specified by:
        initialDelay in interface Budget
        Returns:
        the initial delay, in milliseconds, before running the task
      • interval

        public long interval()
        Description copied from interface: Budget
        The interval between each task execution
        Specified by:
        interval in interface Budget
        Returns:
        the interval, in milliseconds, for each task execution
      • maxIterations

        public int maxIterations()
        Description copied from interface: IterationBudget
        The maximum number of iterations
        Specified by:
        maxIterations in interface IterationBudget
        Returns:
        the maximum number of iterations
      • iteration

        public int iteration()
        Description copied from interface: IterationBudget
        The current number of iterations
        Specified by:
        iteration in interface IterationBudget
        Returns:
        the current number of iterations
      • next

        public boolean next()
        Description copied from interface: Budget
        Move the task to the next iteration
        Specified by:
        next in interface Budget
        Returns:
        true if the task can continue or false otherwise
      • canContinue

        public boolean canContinue()
        Description copied from interface: Budget
        Whether the task has budget to continue executing or not
        Specified by:
        canContinue in interface Budget
        Returns:
        true if the task can continue or false otherwise
      • maxDuration

        public long maxDuration()
        Description copied from interface: TimeBudget
        The maximum length of time that the task can execute
        Specified by:
        maxDuration in interface TimeBudget
        Returns:
        the length of time in milliseconds
      • elapsed

        public Duration elapsed()
        Description copied from interface: Budget
        The amount of time that has elapsed since the budget was created. This can be used to account for the amount of time it took to run a task. The precision should be withing a few microseconds/milliseconds due to the start time being created along with the budget instance. We do so to avoid the overhead of checking it the next or canContinue methods because they could be part of the hot path for some components.
        Specified by:
        elapsed in interface Budget
        Returns:
        The amount of time that has elapsed since the budget was created