Throttex.Core.Journal (throttex v0.1.0)

Summary

Types

t()

@type t() :: %Throttex.Core.Journal{
  id: term(),
  limit: non_neg_integer(),
  period: non_neg_integer(),
  period_start_time: nil | non_neg_integer(),
  release_after: nil | non_neg_integer(),
  releases: [Throttex.Types.release()],
  requests: [Throttex.Types.request()]
}

Functions

add_release(journal, timestamp)

@spec add_release(t(), Throttex.Types.timestamp()) :: t()

add_request(journal, request)

@spec add_request(t(), Throttex.Types.request()) :: t()

count_pending_requests(journal)

@spec count_pending_requests(t()) :: non_neg_integer()

count_releases_in_period(journal)

@spec count_releases_in_period(t()) :: non_neg_integer()

delete_request(journal, request_id)

@spec delete_request(t(), request_id :: term()) :: t()

new(rate)

@spec new(Throttex.Rate.t()) :: t()

update_period(journal, timestamp)

@spec update_period(t(), Throttex.Types.timestamp()) :: t()