module Outcome : sig ... end
The outcome of a job
val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
type limiter = t
val sexp_of_limiter : limiter -> Ppx_sexp_conv_lib.Sexp.t
Specialized limiters
module type Common = sig ... end
module Token_bucket : sig ... end
module Throttle : sig ... end
Implements a basic throttle meant to bound the number of jobs that can concurrently run. Additionally the ~burst_size
and ~sustained_rate_per_sec
arguments can be used to control how many jobs can be spawned in a burst, and how quickly jobs can be spawned over time. If these options are not given to create_exn
they are unbounded.
module Sequencer : sig ... end
A sequencer is a throttle that is specialized to only allow one job at a time and to, by default, not continue on error.
module Resource_throttle : sig ... end
A resource throttle holds a static list of n
resources that are handed out in a round-robin fashion to up to n
concurrent jobs. A resource given to create
may be re-used many times in the lifetime of t
but will never be used by more than one job at a time.
module Expert : sig ... end