Как предотвратить запуск сервисного блока - PullRequest
0 голосов
/ 04 июля 2019

Я новичок в Anylogic, и мне было интересно, можно ли задержать процесс задержки, когда сдвиг закончился накануне, если процесс уже начался.

Я пытаюсь написать некоторый код в сервиседействие, но я не могу найти правильные строки кода.

Я ожидаю, что процесс потока должен прекратиться, пока не начнется следующая смена ресурса.

1 Ответ

1 голос
/ 04 июля 2019

Это можно сделать с помощью пользовательского выбора ресурса в сервисном блоке:

resource choice

self.delayTime(agent)<schedule.getTimeoutToNextValue()

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

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

self.delayTime(agent, HOUR)<schedule.getTimeoutToNextValue()

Убедитесь, что время вашей модели указано в часах, потому что функция getTimeoutToNextValue будет определяться в зависимости от единиц времени, которые вы используете в вашей модели.

...