Q Anylogic:queue.get(0)+队列中的时间

问题描述 投票:2回答:1

我想要识别每个队列中的不同对象,而不是计算队列的大小,以便将它们与平均处理时间相乘,然后获得队列中的时间。

我试图通过使用queue.get(index)函数来识别队列中的不同对象,但我无法确定此函数返回的内容。我想知道队列中的实体来自哪个源。

例如,我从源1 = 1调用实体,但如果我做queue.get(0)== 1?0.2:0.3它不起作用。你有什么想法可以帮助我吗?

提前致谢,

anylogic
1个回答
1
投票

访问队列的成员

请求queue.get(index)将返回Agent对象本身。返回的代理的类型将由延迟块的代理类型设置确定。这通常应自动设置为与Source的代理类型相同的类型,否则会出现转换错误。

获取源信息

您从代理商名称中获取源信息的想法无效,因为该名称与其来源无关。

为了确定代理来自哪个来源,最直观的选择是:

  1. 创建和使用自定义代理类型
  2. 在此代理类型中,您可以添加一个变量,用于保存有关源来源的信息。字段的类型可以是包含源ID的String,也可以是直接包含Source对象的“Source”类型
  3. 此字段将填入每个源的“退出”字段

如果要识别队列中的源,可以使用该字段进行比较,例如。像这样:

queue.get(index).mySourceId.equals(“Source1”)?0.2:0.3

© www.soinside.com 2019 - 2024. All rights reserved.