buildgrid.server.scheduler.assigner module
- class buildgrid.server.scheduler.assigner.SamplingConfig(sample_size: int, max_attempts: int = 1)
Bases:
object
Configuration for sampling bots, used by BotAssignmentStrategy. If enabled, the assigner will sample a list of bots without locking them and choose the best one.
- sample_size: int
- max_attempts: int = 1
- class buildgrid.server.scheduler.assigner.AssignByCapacity(kind: Literal['capacity'] = 'capacity', sampling: buildgrid.server.scheduler.assigner.SamplingConfig | None = None)
Bases:
object
- kind: Literal['capacity'] = 'capacity'
- sampling: SamplingConfig | None = None
- class buildgrid.server.scheduler.assigner.AssignByLocality(kind: Literal['locality'] = 'locality', sampling: buildgrid.server.scheduler.assigner.SamplingConfig | None = None, fallback: 'BotAssignmentStrategy' = AssignByCapacity(kind='capacity', sampling=None))
Bases:
object
- kind: Literal['locality'] = 'locality'
- sampling: SamplingConfig | None = None
- fallback: AssignByCapacity | AssignByLocality = AssignByCapacity(kind='capacity', sampling=None)
- buildgrid.server.scheduler.assigner.create_bot_assignment_fn(strategy: AssignByCapacity | AssignByLocality, scheduler: Scheduler, assigner_name: str) BotAssignmentFn
- class buildgrid.server.scheduler.assigner.JobAssigner(*args, **kwargs)
Bases:
Protocol
- start() None
- stop() None
- begin(shutdown_requested: Event) None
- class buildgrid.server.scheduler.assigner.PriorityAgeJobAssigner(scheduler: Scheduler, name: str, interval: float, priority_percentage: int = 100, jitter_factor: float = 1, failure_backoff: float = 5.0, busy_sleep_factor: float = 0.01, instance_names: frozenset[str] | None = None, bot_assignment_strategy: AssignByCapacity | AssignByLocality = AssignByCapacity(kind='capacity', sampling=None))
Bases:
object
- start() None
- stop() None
- begin(shutdown_requested: Event) None
- class buildgrid.server.scheduler.assigner.AssignerConfig(*args, **kwargs)
Bases:
Protocol
- count: int
- interval: float
- generate_assigners(scheduler: Scheduler) Generator[JobAssigner, None, None]
Generate the actual JobAssigner objects defined by this configuration.
- class buildgrid.server.scheduler.assigner.PriorityAgeAssignerConfig(name: str, count: int, interval: float, priority_assignment_percentage: int = 100, failure_backoff: float = 5.0, jitter_factor: float = 1.0, busy_sleep_factor: float = 0.01, instance_names: frozenset[str] | None = None, bot_assignment_strategy: buildgrid.server.scheduler.assigner.AssignByCapacity | buildgrid.server.scheduler.assigner.AssignByLocality = AssignByCapacity(kind='capacity', sampling=None))
Bases:
object
- name: str
- count: int
- interval: float
- priority_assignment_percentage: int = 100
- failure_backoff: float = 5.0
- jitter_factor: float = 1.0
- busy_sleep_factor: float = 0.01
- instance_names: frozenset[str] | None = None
- bot_assignment_strategy: AssignByCapacity | AssignByLocality = AssignByCapacity(kind='capacity', sampling=None)
- generate_assigners(scheduler: Scheduler) Generator[PriorityAgeJobAssigner, None, None]