class Spread
Prefer the backend with the fewest active requests.
Definitions
def select(backends, queue:, request:)
Select the least-active backend, using its name for deterministic ties.
Signature
-
parameter
backendsArray(Backend) Eligible backends with available permits.
-
parameter
queueQueue The request queue being scheduled.
-
parameter
requestProtocol::HTTP::Request The pending request.
-
returns
Backend | Nil The preferred backend.
Implementation
def select(backends, queue:, request:)
backends.min_by{|backend| [backend.processing, backend.name]}
end