AnyLogic
Развернуть
Размер шрифта

ResourceTaskEnd

Задает конец отдельной ветви диаграммы процесса, моделирующей завершающую задачу для освобождаемого ресурса (или ресурсов).

Ветвь завершающей задачи начинается из нижнего порта блока, который освобождает ресурсы (Release), и заканчивается блоком ResourceTaskEnd.

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

Пример

Демо-модель: Emergency Department Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.

В приведенной модели отделения скорой медицинской помощи вы можете найти примеры задания как подготовительной, так и завершающей задач. Для этого откройте диаграмму типа агента USoundProcess, задающего нестандартный блок с логикой процесса обследования с помощью УЗИ. Для этого обследования инженер УЗИ должен доставить аппарат УЗИ к пациенту. Если вы посмотрите на диаграмму процесса, то увидите, что вначале пациент занимает ресурс (инженера УЗИ, в блоке seizeTech). В этот момент начинается подготовительная задача этого ресурса, заданная ветвью диаграммы процесса, соединенной с нижним портом этого блока. Ветвь диаграммы, задающая подготовительный процесс ресурса, всегда начинается с блока ResourceTaskStart. В этом блоке задается, для какого именно ресурса задается подготовительная задача (здесь это инженер УЗИ technician). В нашем случае подготовительный процесс состоит из блока seizeUSound (захватывает ресурс - аппарат УЗИ uSound), блока takeUSound типа MoveTo (инженер-техник идет к занятому им аппарату) и блока attachUSound типа ResourceAttach (присоединяет ресурс - аппарат УЗИ к ресурсу - инженеру). Подготовительная задача заканчивается, когда соединитель приходит в нижний порт блока Seize. Поскольку у этого блока Seize выбрана опция Пересылать захваченные ресурсы, то инженер УЗИ в итоге доставит аппарат УЗИ нуждающемуся в нем пациенту.

После блока doUSound типа Delay, моделирующего проведение обследования, следует блок releaseTechUSound типа Release. Он освобождает указанный ресурс (technician) и начинает завершающую задачу (заданную ветвью диаграммы, соединенной с нижним портом блока). Инженер УЗИ переходит в узел базового расположения захваченного ресурса usound (это делает блок moveTo) и освобождает этот ресурс по прибытии (блок release). Ветвь диаграммы, задающей завершающую задачу, всегда заканчивается блоком ResourceTaskEnd.

Параметры

Переместить ресурс в его базовый узел
Если опция выбрана, ресурсы будут перемещены в их базовое местоположение по окончании выполнения задачи.
Тип значения: boolean
Значение по умолчанию: true
Локальная переменная: T unit — ресурс
Освобождать захваченные ресурсы
Если опция выбрана, то все ресурсы, захваченные ресурсом, завершающим в этом блоке свою задачу, будут освобождены.
Тип значения: boolean
Значение по умолчанию: true Локальная переменная: T unit — ресурс

Действия

При выходе
Код, выполняемый, когда ресурс завершает задачу и покидает этот блок ResourceTaskEnd.
Локальные переменные:
T unit — ресурс
Agent agent — агент, который обслуживался перед выполнением этой завершающей задачи ресурса
При извлечении
Код, выполняемый, когда ресурс умышленно извлекается из блока посредством вызова функции ресурса remove(). Этот код вызывается автоматически после вызова функции remove().
Локальная переменная: T unit — ресурс

Функции

Функция Описание
long count() Возвращает количество ресурсов, прошедших через этот блок ResourceTaskEnd.

Порт

in
Входной порт.
Как мы можем улучшить эту статью?