问题描述
基于天的加油站
基于当天的加油站我试图让模型执行以下操作:我有一个带有队列的 5 服务块。我需要模型为每个服务块分配一天,即在第 1 天填充第一个服务块。然后在第二天填充服务块2,第三天填充第三个服务块,第四天填充第4个服务块,第五天填充第5个服务块。一旦第五个服务块完成,它将再次从服务块一开始。
我尝试使用 exit 和 enter 块通过集合和以下代码在 5 个服务块之间进行迭代:
double minSize = min(collection,sp -> (sp.Curing_Drying1.size()));
return findFirst(collection,sp -> (sp.Curing_Drying1.size()) == minSize).enter;
请参阅附加图片以获得进一步说明。
queue and delay Exit and enter with collection
当前模型未将每个服务或延迟块分配到特定日期工作。任何人都可以就如何分配每个服务块按顺序工作一天提出建议。
解决方法
所以您想在给定的日子里将代理发送到 subProcess
个实例?
您可以将 int 参数 allowedDay
添加到 SubProcess
。将其设置为每个值 0-4。
然后在您的 exit
块中,使用当前模型时间决定将代理发送到何处:
for (SubProcess currProcess : collection) {
if (currProcess.allowedDay == (int)time(DAY)) {
currProcess.enter.take(agent);
}
}
诀窍是将当前模型时间转换为天数的 (int)time(DAY)
。
确保正确处理错误,很明显。