О2_Routing_МенеджерОграничений.ПотребностьИнтервала
Создаёт объект потребности интервала — пару (Интервал, Потребность) — для последующей передачи в КонкурентноеИспользование. Основной способ вызова: О2.Модели().МодельМаршрутизации().СоздатьМодель().Ограничения().ПотребностьИнтервала(Интервал, Потребность).
Синтаксис
О2.Модели().МодельМаршрутизации().СоздатьМодель().Ограничения().ПотребностьИнтервала(
Интервал,
Потребность
)
Параметры
- Интервал — ФиксированнаяСтруктура — объект интервала, ранее зарегистрированного через
ДобавитьилиДобавитьФиксированный.- Число — 0-based индекс интервала.
- Потребность — Число — целочисленная неотрицательная величина нагрузки, которую данный интервал потребляет из общей ёмкости ресурса, пока он активен.
Возвращаемое значение
- ФиксированнаяСтруктура — объект потребности интервала с полями
ИнтервалиПотребность. Передаётся в массивПотребностиметодаКонкурентноеИспользование.
Описание
Метод О2.Модели().МодельМаршрутизации().СоздатьМодель().Ограничения().ПотребностьИнтервала(...) является вспомогательным — он не добавляет ограничение в модель самостоятельно, а формирует DTO (объект данных), необходимый для описания нагрузки от одного интервала на ограниченный ресурс.
Группа таких объектов передаётся в КонкурентноеИспользование, которое следит за тем, чтобы суммарная нагрузка активных интервалов не превышала заданную ёмкость.
Пример
Модель = О2
.Модели()
.МодельМаршрутизации()
.СоздатьМодель();
Интервалы = Модель.Интервалы();
Ограничения = Модель.Ограничения();
ОперацияА = Интервалы.ДобавитьФиксированный(60, 0, 480);
ОперацияБ = Интервалы.ДобавитьФиксированный(90, 0, 480);
ОперацияВ = Интервалы.ДобавитьФиксированный(30, 0, 480);
// Формируем потребности: А и В потребляют 2 единицы ресурса, Б — 3
ПотребностиМассив = О2.Утилиты().Массив(
Ограничения.ПотребностьИнтервала(ОперацияА, 2),
Ограничения.ПотребностьИнтервала(ОперацияБ, 3),
Ограничения.ПотребностьИнтервала(ОперацияВ, 2)
);
// Ёмкость ресурса — не более 4 единиц одновременно
Ограничения.КонкурентноеИспользование(4, ПотребностиМассив);