关于STATION流程编程实现每处理200个Agent后停机3分钟的技术问询
实现STATION处理200个Agent后停机3分钟的方案
完全可以实现这个需求,核心思路是给STATION加个处理计数器,达到阈值后触发停机延时,再自动恢复运行。下面以主流的Agent模拟工具为例给出具体实现:
AnyLogic实现步骤
- 创建计数器变量:在模型里新增整数变量
processedAgentsCount,初始值设为0。 - 绑定STATION的退出事件:
在Agent离开STATION的On Exit事件中添加以下代码:processedAgentsCount++; if (processedAgentsCount == 200) { // 暂停STATION接收新Agent station.setPaused(true); // 3分钟后恢复运行并重置计数器 delay(3, TimeUnit.MINUTES, () -> { station.setPaused(false); processedAgentsCount = 0; }); } - 运行模型后,STATION每处理200个Agent就会自动停机3分钟,之后继续循环处理。
其他模拟工具通用思路
不管用Simio、FlexSim还是其他工具,逻辑都是一致的:
- 新增一个计数变量,记录已处理的Agent数量
- 在STATION完成一个Agent处理的事件中,累加计数
- 当计数达到200时,调用STATION的暂停/停机方法
- 设置一个3分钟的延时任务,延时结束后恢复STATION运行,并重置计数器
内容的提问来源于stack exchange,提问作者Technik
相关产品推荐
相关产品推荐

