You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Anylogic中如何按条件终止Delay延迟块的超时等待

结论

Delay块完全适配这个港口登船发船的调度需求,你遇到的配置矛盾是配置思路问题,不需要更换其他建模组件。

具体配置步骤
  • Delay块基础参数设置
    把Delay块的延迟类型设置为直到调用stopDelay(Until stopDelay is called),不要选择“指定时间(Specified time)”模式——后者本身就不开放中途终止延迟的调用接口,硬靠这个模式实现逻辑反而会增加大量冗余判断。120分钟的最长等待阈值不需要依赖Delay自带的时间参数配置,单独补触发逻辑即可。
  • 120分钟超时自动驶离逻辑
    当船只实体进入Delay块开始等待的瞬间,给当前停靠的船只绑定一个动态事件,设置事件触发时间为time() + 120 * minute(),事件触发动作直接写delay.stopDelay(当前船只实体),到点自动终止延迟,让船只按计划驶离。
  • 满客提前驶离逻辑
    复用你已经在做的登船乘客集合统计逻辑,每次有新乘客完成登船、更新当前船只载客数后,增加一层判断:如果当前载客数达到1750人的最大载客容量,先销毁之前给这艘船绑定的120分钟超时动态事件(避免后续重复触发驶离逻辑报错),再调用delay.stopDelay(当前船只实体),直接终止等待让船只提前发船。
配置注意事项
  • 两个发船触发逻辑(等待超时、载客满员)任意一个触发后,必须同步销毁另一个未触发的对应事件,不能留冗余触发任务,否则会出现对已经驶离的船只重复调用stopDelay的运行时报错。
  • 载客数统计的集合要和当前停靠的船只实体做一对一绑定,每艘船驶离港口后立刻清空对应计数,避免前后两艘船的载客数据串扰。

内容的提问来源于stack exchange,提问作者Lorenzo Martello

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 18:22:18