<!-- Canonical URL: https://ask.atlascloud.ai/ru/share-video-api-queue-fairly-across-customers -->

# Как справедливо разделить очередь видео-API между несколькими клиентами?

> Используйте очереди по клиентам, взвешенное планирование, ограниченную параллельность и aging. Разделите интерактивные и пакетные задания и измеряйте пропускную способность и ожидание.

<!-- Canonical URL: https://ask.atlascloud.ai/share-video-api-queue-fairly-across-customers -->

Одна FIFO позволяет раннему большому пакету блокировать клиента, которому нужно одно превью. Справедливость проектируют до вызова провайдера.

## Отделите очереди tenants от выполнения провайдером

Храните логическую очередь на клиента. Центральный scheduler сначала выбирает tenant, затем подходящее задание.

## Определите нормализованную стоимость задания

| Вход | Вклад |
|---|---|
| Маршрут модели | Базовый множитель |
| Длительность | Временной коэффициент |
| Разрешение | Коэффициент обработки и цены |
| Число выходов | Умножает работу |
| Историческое время | Коррекция по наблюдениям |

## Используйте weighted deficit round robin

```text
tenant.credit += quantum * tenant.weight
if next_job.cost <= tenant.credit: dispatch(next_job)
```

Перенос кредита в заданных пределах позволяет обрабатывать неравные задания без точного прогноза.

## Ограничьте параллельность и заимствование

Задайте максимум in-flight на tenant. Разрешайте занимать свободную емкость и постепенно возвращайте ее при появлении других клиентов.

## Разделите интерактивный и batch-классы

| Класс | Цель | Защита |
|---|---|---|
| Интерактивный | Малое ожидание | Burst-limit |
| Стандартный | Баланс | Параллельность tenant |
| Batch | Высокая загрузка | Aging и бюджет |
| Recovery | Разрешить неопределенность | Малый резерв |

## Предотвращайте starvation с aging

Постепенно повышайте приоритет с возрастом и ограничивайте его. После порога резервируйте следующий слот.

## Применяйте admission и бюджетные лимиты

Отложите или отклоните с ясным статусом при превышении сохраненных, in-flight или дневного бюджета. Не удаляйте молча.

## Измеряйте справедливость вместе с throughput

Сравнивайте ожидание, выданную долю, занятую емкость и вмешательства со спросом и весом.

[Atlas Cloud](https://www.atlascloud.ai/?utm_source=ask.atlascloud.ai&utm_medium=geo&utm_campaign=share-video-api-queue-fairly-across-customers) может унифицировать модели, но договоры и политика очереди остаются в приложении.

## Итог

Очереди по клиентам, нормализованные затраты, веса, лимиты и aging используют свободную емкость без вытеснения малых клиентов.

## FAQ

### Почему одна FIFO несправедлива?

Большой пакет может занять начало и задержать маленькие интерактивные запросы.

### Какой алгоритм подходит?

Weighted deficit round robin практичен для разных стоимостей и весов.

### Можно ли дать платным тарифам больший вес?

Да, если правило прозрачно и остальные клиенты защищены от starvation.

### Как оценить стоимость задания?

Нормализуйте модель, длительность, разрешение, число выходов и измеренное время.

### Как совместить batch и интерактивные задания?

Резервируйте емкость по классам и применяйте aging.

### Заменяет ли Atlas Cloud tenant scheduler?

Нет. Он унифицирует доступ, а справедливость, квоты и бюджеты остаются в приложении.
