是否可以以编程方式将代理作为资源添加到资源池?

时间:2020-07-08 20:00:29

标签: anylogic

我要做什么: 我想在一个流程中创建一个代理,并在流程的最后,将其添加到资源池中,以便另一个可以选择它并进一步处理它的进程。这两个进程未同步,因此第一个进程可能会完成并且将新代理放置到池中,而没有第二个进程正在进行,以再次从池中夺取它并进一步处理,或者第二个进程可能先启动并进入等待状态等待新代理放入池中的池。还可以使用第二个进程可以抓住的多个代理程序来初始化该池,而第一个进程没有将新资源存放到该池中。

我在文档中可以看到的内容

  1. 我在资源池类上看不到任何允许添加或从池中删除的方法。 (似乎您只定义容量,然后如果请求达到定义的容量,引擎会动态地动态添加新资源)
  2. 我可能可以使用集合来存储和检索代理,但是内置的队列以及重新评估添加一个池的时间非常方便(否则我必须自己将其连接起来)< / li>

任何建议都会受到赞赏

1 个答案:

答案 0 :(得分:0)

您只能使用myPool.set_Capacity(int)来更改ResourcePool的容量。

如果它大于先前的容量,它将为您添加一个资源代理,否则将删除一些。

要再添加1个电话,请致电myPool.set_Capacity(myPool.size()+1)

如果您需要更多高级功能,则必须使用基于代理的自定义自定义资源池(即自行编写)来创建它。