影院仿真项目中Service/Delay动态延迟时间设置及同步离场问询
影院仿真同步离场实现方案解答
核心结论
你的方案完全可行,每个进入Delay块的Agent会独立计算并锁定延迟时长,后续时间变化或timeEnds变量修改(若未改动则无需担心)不会影响已在Delay中的Agent,最终所有顾客都会在timeEnds时刻同步离场。
原理说明
Delay块的Delay Time参数是在Agent刚进入块的瞬间求值的,并非实时动态更新:
- 12:50进入的顾客,会即时计算
15:00 - 12:50 = 2小时10分钟,这个时长被固定后,该顾客会在15:00准时离场 - 13:00进入的顾客,计算
15:00 - 13:00 = 2小时,同样会在15:00离场 - 所有不同时间进入的Agent,停留时长刚好补足到电影结束时间,自然实现同步离场
实操注意事项
- 确保
timeEnds是固定值(比如提前初始化好的影厅电影结束时间变量),不要在电影播放过程中修改它——如果中途修改,只有之后进入Delay的Agent会用新值,已在里面的Agent仍会沿用最初计算的时长 - 直接在Delay块的
Delay Time参数中写入timeEnds - time()即可,无需额外逻辑处理
内容的提问来源于stack exchange,提问作者martin Čonto
相关产品推荐
相关产品推荐

