Module slack_sdk.http_retry.jitter

Expand source code
import random


class Jitter:
    """Jitter interface"""

    def recalculate(self, duration: float) -> float:
        """Recalculate the given duration.
        see also: https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/

        Args:
            duration: the duration in seconds

        Returns:
            A new duration that the jitter amount is added
        """
        raise NotImplementedError()


class RandomJitter(Jitter):
    """Random jitter implementation"""

    def recalculate(self, duration: float) -> float:
        return duration + random.random()

Classes

class Jitter

Jitter interface

Expand source code
class Jitter:
    """Jitter interface"""

    def recalculate(self, duration: float) -> float:
        """Recalculate the given duration.
        see also: https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/

        Args:
            duration: the duration in seconds

        Returns:
            A new duration that the jitter amount is added
        """
        raise NotImplementedError()

Subclasses

Methods

def recalculate(self, duration: float) ‑> float

Recalculate the given duration. see also: https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/

Args

duration
the duration in seconds

Returns

A new duration that the jitter amount is added

Expand source code
def recalculate(self, duration: float) -> float:
    """Recalculate the given duration.
    see also: https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/

    Args:
        duration: the duration in seconds

    Returns:
        A new duration that the jitter amount is added
    """
    raise NotImplementedError()
class RandomJitter

Random jitter implementation

Expand source code
class RandomJitter(Jitter):
    """Random jitter implementation"""

    def recalculate(self, duration: float) -> float:
        return duration + random.random()

Ancestors

Inherited members