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

时间:2016-05-11 10:33:18

标签: anylogic

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

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

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

提前致谢,

1 个答案:

答案 0 :(得分:1)

访问队列成员

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

获取源信息

您从座席姓名中获取源信息的想法是行不通的,因为该名称绝不会与源名称相关联。

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

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

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

  

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