如何在anylogic中为ResourcePool的队列设置优先级
How to set priority for ResourcePool's queue in anylogic
我有一系列需要相同资源(工作人员)的服务。我希望工作人员遵循顺序,而不是随机选择要操作的服务。如何设置 ResourcePool 队列的优先级?
感谢您的宝贵时间
一种方法:
- 在 worker 中创建一个服务类型的变量 "myPreviousService"。初始值设置为 null
- 在每个服务中,应用"customize resource choice"选项并检查要占用的单元之前是否在所需的先前服务对象中工作过(在屏幕中,我设置了"service3"并要求工作人员以前在 "service2" 上工作过)
- (显然只有第一个服务不需要这个要求)
- 在每个服务的 "on seize unit" 中,存储
unit.myPreviousService = self
以便工作人员记住
希望对您有所帮助
一般来说,对于这些情况,使用服务不是正确的方法,您应该在开始时使用占用块,让代理通过所有服务(现在将以延迟表示,因为您的资源是已经扣押)并且在你的工作人员完成所有操作后你可以使用释放块。
记住一个服务=占用+延迟+释放
仅当您的工作人员需要完成序列时才使用服务是合理的,但他正在处理什么代理并不重要(这将适用于 Benjamin 的解决方案)
我有一系列需要相同资源(工作人员)的服务。我希望工作人员遵循顺序,而不是随机选择要操作的服务。如何设置 ResourcePool 队列的优先级? 感谢您的宝贵时间
一种方法:
- 在 worker 中创建一个服务类型的变量 "myPreviousService"。初始值设置为 null
- 在每个服务中,应用"customize resource choice"选项并检查要占用的单元之前是否在所需的先前服务对象中工作过(在屏幕中,我设置了"service3"并要求工作人员以前在 "service2" 上工作过)
- (显然只有第一个服务不需要这个要求)
- 在每个服务的 "on seize unit" 中,存储
unit.myPreviousService = self
以便工作人员记住
希望对您有所帮助
一般来说,对于这些情况,使用服务不是正确的方法,您应该在开始时使用占用块,让代理通过所有服务(现在将以延迟表示,因为您的资源是已经扣押)并且在你的工作人员完成所有操作后你可以使用释放块。
记住一个服务=占用+延迟+释放
仅当您的工作人员需要完成序列时才使用服务是合理的,但他正在处理什么代理并不重要(这将适用于 Benjamin 的解决方案)