Перейти к основному содержимому

О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, ПотребностиМассив);

См. также