0

有没有办法让每个代理发生并行服务和/或延迟,并继续进行耗时最长的活动。例如,如果我有一个可以同时绘制和服务的代理,每个代理都需要具有不同处理时间的不同资源池,但是当花费时间最长的进程结束时,代理将继续前进。

4

2 回答 2

2

使用 Split 块将代理分成两个并行任务(服务块),然后使用 Combine 将它们再次组合回来(使用 Combine 块输出原始代理 1)。

您还可以在拆分/合并区域周围使用 RestrictedAreaStart 和 RestrictedAreaEnd 块(容量 1),以确保在最长的并行进程仍在运行(但较短的进程已完成)时其他代理无法“跳入”。

类似于下面的内容(带有资源池)。

示例流程

于 2020-03-03T09:25:33.160 回答
1

从 1 个服务元素中动态设置所需的延迟持续时间和资源可能最容易:

计算您的代理在每种情况下使用的持续时间(绘画 = 5 分钟,服务 = 10 分钟)-> 使用较长的值作为服务延迟

此外,使代理需要 1 名油漆工和 1 名服务工程师作为资源。

唯一的缺点:您的画家也会停留 10 分钟。

替代方法可能涉及创建您自己的、纯粹基于代理的设置,并带有捕获和释放

于 2020-03-03T07:28:35.090 回答