load_balancer.py 596 B

1234567891011121314151617
  1. from typing import List
  2. from gpustack.http_proxy.strategies import LoadBalancingStrategy, RoundRobinStrategy
  3. from gpustack.schemas.models import ModelInstance
  4. class LoadBalancer:
  5. def __init__(self, strategy: LoadBalancingStrategy = None):
  6. if strategy is None:
  7. strategy = RoundRobinStrategy()
  8. self._strategy = strategy
  9. def set_strategy(self, strategy: LoadBalancingStrategy):
  10. self._strategy = strategy
  11. async def get_instance(self, instances: List[ModelInstance]) -> ModelInstance:
  12. return await self._strategy.select_instance(instances)