Anylogic中基于优先级的队列

问题描述

我正在使用基于优先级的队列从托盘货架挑选代理。代理的优先级可以是0或1。如果palletRack中有10个代理,我想首先选择所有优先级=1的代理。我在当前流程图中的问题是:优先级 = 0 的代理在优先级 = 1 的代理之前接机。可能是因为代理一一进入和离开队列块,队列块中不会同时出现多个代理,以便对它们进行排序。如何解决这个问题?

enter image description here

解决方法

在 queueStorage2 和 pickFromStorage1 之间放置一个保持块,并在 queueStorage2 的 on enter 动作上,检查您的所有代理是否都在那里,如果它们都在(无论您需要检查什么条件以确保一切都在那里),您将取消阻止hold.unblock();

保持