AnyLogic两类不同优先级客户的队列服务规则实现方法问询
AnyLogic 高优先级队列需求最简实现方案
你最初设想的单队列优先级方案是当前场景下操作最简便的实现方式,具体操作步骤如下:
- 为你的代理类型新增一个优先级int类型参数,给类型1代理赋值为1,类型2代理赋值为2(AnyLogic默认优先级规则为数值越小优先级越高)
- 拖入单个
Queue组件,在队列配置页将排序规则选择为「Priority-based」,优先级表达式填写你刚才定义的代理优先级参数即可 - 将该队列直接接入
Service的入站端口,不需要额外编写任何代码逻辑,服务点空闲时会自动按优先级从高到低拉取代理,只要队列内存在类型1代理就会优先处理,完全匹配你的需求。
如果你的教学场景需要保留两个独立队列(比如要分别统计两类代理的排队时长、队列长度等独立指标),也可以采用和Simul8逻辑高度一致的双队列实现方案:
- 拖入两个独立
Queue分别对应队列1、队列2,分别接入类型1、类型2代理 - 将两个队列的出站端口都连接到同一个
Service的入站端口 - 打开
Service的配置页,切换到「高级」标签,找到拉取优先级配置项,给连接队列1的输入端口设置优先级为1,连接队列2的输入端口设置优先级为2即可,无需修改队列本身的配置。
配置注意:AnyLogic全产品的优先级规则统一为数值越小优先级越高,不要搞反两类代理/队列的优先级赋值顺序。
内容的提问来源于stack exchange,提问作者Thanos
相关产品推荐
相关产品推荐

