直接问题:如何检查代理是否在等待块中等待?
更多细节?下面,谢谢。
我按照费利佩先生对一个类似问题的回答(这个问题:任何逻辑-将多个项目组合回原始所有者)
在回答的第4步中,他说“在passengerWait上,在Oneter操作中,您将检查连接到乘客的所有行李是否都在bagWait块上……如果在bagWait块上……那么您将释放(wait.free(agent))乘客和行李”
你知道怎么检查这个吗?我在单一患者和单一药物之间也有同样的问题。
我想出了办法:
variable_IsWaitingForBag
variable_IsWaitingForPassenger
onEnter
of passengerWait
, use the following: if(agent.agentLink_myBag.getConnectedAgent().variable_IsWaitingForPassenger)
{
passengerWait.free(agent);
bagWait.free(agent.agentLink_myPassenger.getConnectedAgent());
}
agent.variable_IsWaitingForBag=true;
为了避免深入了解模型的细节和块的命名,我将为您提供一些通用的东西,以帮助您实现所需的功能。
>
字符a
现在指的是在每次迭代中评估的等待块中的代理。
现在,您只需添加条件,检查等待块中的任何代理是否与您的条件匹配,即它们是否等于通过等待块的任何连接代理。
Agent x = null;
for( Agent a : waitBlock ) {
if( a.equals(agent.agentLink.getConnectedAgent()) ) {
x = a ;
break;
}
}
if( x != null ) {
waitBlock.free( x );
}
另一个简化代码是:
Agent x = findFirst( waitBlock , a -> a.equals(agent.agentLink.getConnectedAgent()) );
if( x != null ) {
waitBlock.free(x);
}
我使用等待块使代理等待,直到条件为真(资源空闲)。我尝试在等待块“输入”字段中写入以下内容: 问题是,如果资源变得繁忙,代理将被困在等待块中,不会被释放,即使条件再次变为真。然后,当下一个代理进入等待块时(条件再次变为真),它将传递原本在它前面的代理,但现在被卡住了。有办法解决这个问题吗?
null null Jenkins通过curl命令触发作业(不在管道中),Jenkins kubernetes插件可以用我定义的图像触发作业。
我有一艘容量为1750 pp的船,根据时间表每2小时离开港口一次。乘客到达等候区后,如果满足以下条件,他们可以离开该区域: 码头上有一艘船 (离开等候区的已上船乘客人数) 所有这些条件都正常工作,但由于到达码头需要时间,而且根据安全协议,我想在船只出发前2分钟停止客流,以免乘客没有登上码头。 如何将船期(名为schDepartureBoat1)与乘客等待区(名为waitForBoat1)联系起来?
我是AnyLogic的新手,我正在尝试创建一个自定义网络...但我无法成功完成此任务:( 然后我有一个变量“network”,它包含年龄类之间链接的平均数。 我想要的是每个代理根据矩阵创建与其他代理的链接。 我不知道如何对一个座席说“连接到另一个具有AgeClass=3的座席” 谢谢大家的支持!!!
我想使用ActiveMQ创建一个代理来连接到另一个蚊子代理。然后,我可以使用ActiveMQ接收来自蚊子代理的消息。 我现在要做的是: 将ActiveMQ与JBoss EAP 6.3集成。 在ActiveMQ中创建MQTT代理:http://activemq.apache.org/mqtt.html 但是,在我添加代理配置中的网络连接器之后.xml: 服务器启动后显示异常: "vm://local