buildgrid.server.scheduler.assigner module
- class buildgrid.server.scheduler.assigner.SamplingConfig(sample_size: int, max_attempts: int = 1)
Bases:
objectConfiguration 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, bot_cohort: str | None = None) BotAssignmentFn
- class buildgrid.server.scheduler.assigner.JobAssigner
Bases:
ABC- abstractmethod start() None
- abstractmethod stop() 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:
JobAssigner- start() None
- stop() None
- begin(shutdown_requested: Event) None
- class buildgrid.server.scheduler.assigner.AssignerConfig
Bases:
ABC- count: int
- interval: float
- abstractmethod 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:
AssignerConfig- 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]
Generate the actual JobAssigner objects defined by this configuration.
- class buildgrid.server.scheduler.assigner.CohortAssigner(scheduler: Scheduler, name: str, cohort_set: frozenset[str] | None, interval: float, 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), preemption_delay: float = 20.0)
Bases:
JobAssigner- start() None
- stop() None
- begin(cohort: str, shutdown_requested: Event) None
- class buildgrid.server.scheduler.assigner.CohortAssignerConfig(name: str, count: int, cohort_set: frozenset[str] | None = None, interval: float = 1.0, 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), preemption_delay: float = 20.0)
Bases:
AssignerConfig- name: str
- count: int
- cohort_set: frozenset[str] | None = None
- interval: float = 1.0
- 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)
- preemption_delay: float = 20.0
- generate_assigners(scheduler: Scheduler) Generator[CohortAssigner, None, None]
Generate the actual JobAssigner objects defined by this configuration.