Anylogic - 基于处理时间的队列 DB
Anylogic - queue based on processing times DB
我正在使用 anylogic 进行作业车间调度。我有 20 个作业(每个作业都有一个机器序列数据库的代理)和 5 台机器(资源)。
This is what I have right now. Source creates the 20 jobs and in the exit block i have the 'nextmachine' function, that sends each job to the correct machine of its sequence.
现在我想使用其他数据库table,即每个作业序列机器中每个作业的处理时间。我想对所有队列进行排序,以便处理时间最短。我创建了一个新代理 'processingTimes',使用新数据库 table,我正在尝试将作业 ID 与 processingTimes 相关联,以便正确关联处理时间。
Processing times table.
I created this collection, inside my new agent, containing the processing times of each job.
Did this, trying to associate both agents id but I think it is not correct.
Finally, this is the condition I put so that I can order my jobs in relation to their processing times. I also think the code is not correct.
我做错了什么提示?
新:
This is my iterator but gives me the errors showed
New collection properties.
需要进行以下更改:
- 从数据库
加载processingTimes时删除选择条件
- 创建一个 int->ProcessingTime 类型的 LinkedHashMap 集合,我们称之为
col_jobProcTimes
- Main->On startup - 遍历
processingTimes[]
population 并将它们放入 col_jobProcTimes
地图以供稍后查找
- Queue“agent1 is preferred to agent2”字段中的两个 agent 是 Jobs,因此对于您需要做的每项工作:
col_jobProcTimes.get((job)agent.jobpt).col_processSequence.get((job)agent.counter)
以获得双倍延迟值并比较两者
更新。
关于pt。 3 以上,代码应该是:
for (ProcessingTimes pt : processingTimes) {
col_jobProcTimes.put(pt.jobpt, pt);
}
AnyLogic 帮助网站提供了使用 java here 的良好参考。
我正在使用 anylogic 进行作业车间调度。我有 20 个作业(每个作业都有一个机器序列数据库的代理)和 5 台机器(资源)。
This is what I have right now. Source creates the 20 jobs and in the exit block i have the 'nextmachine' function, that sends each job to the correct machine of its sequence.
现在我想使用其他数据库table,即每个作业序列机器中每个作业的处理时间。我想对所有队列进行排序,以便处理时间最短。我创建了一个新代理 'processingTimes',使用新数据库 table,我正在尝试将作业 ID 与 processingTimes 相关联,以便正确关联处理时间。
Processing times table.
I created this collection, inside my new agent, containing the processing times of each job.
Did this, trying to associate both agents id but I think it is not correct.
Finally, this is the condition I put so that I can order my jobs in relation to their processing times. I also think the code is not correct.
我做错了什么提示?
新:
This is my iterator but gives me the errors showed
New collection properties.
需要进行以下更改:
- 从数据库 加载processingTimes时删除选择条件
- 创建一个 int->ProcessingTime 类型的 LinkedHashMap 集合,我们称之为
col_jobProcTimes
- Main->On startup - 遍历
processingTimes[]
population 并将它们放入col_jobProcTimes
地图以供稍后查找 - Queue“agent1 is preferred to agent2”字段中的两个 agent 是 Jobs,因此对于您需要做的每项工作:
col_jobProcTimes.get((job)agent.jobpt).col_processSequence.get((job)agent.counter)
以获得双倍延迟值并比较两者
更新。
关于pt。 3 以上,代码应该是:
for (ProcessingTimes pt : processingTimes) {
col_jobProcTimes.put(pt.jobpt, pt);
}
AnyLogic 帮助网站提供了使用 java here 的良好参考。