Dynamic version of JobShop without specific routes
Hi, I am trying to model a JobShop similar system, where the jobs do not belong to a route, but to technologies. These technologies are implemented in a customized machine class (called FlexibleMachine in the code). The jobs are implemented through a class called CustomJob.
Before each machine, a (custom) queue is linked to the machine (so that a queue is always the predecessor of a machine). Now, all jobs are of type 'part', because the ManPy JobShop Jobs cannot be used for my purpose and I do not want to change something in the source code of ManPy to add a new type of objects. Every job has a list of technologies that the job needs and a list of remaining technologies. (See class CustomJob)
The main difference to the ManPy source code are the updateNext methods of the custom machine and the custom queue classes (class names: FlexibleMachine and FlexibleQueue). In the update next method, the custom machine is looking if the activeEntity (a job) needs to fulfill remaining technologies through the remainingTechnologies list. If yes, the current machine is looking for machines that can provide the needed technologies. If the machine has found one, the linked queue is appended to the next list. If not, all technologies were fulfilled and the Exit (realized through FlexibleExit) is appended to the next list. In the FlexibleQueues updateNext-method, only the machine that is linked to the preceding queue is appended to the next list.
Now my problem: If I change the capacity of a queue, so that it is "full" at a specific time, the system and the simulation stop working, when a job, which has just been created in the source, wants to get in this specific full queue. At this moment, the source falls into a continuous loop in the run method of the EntityGenerator until the maxSimTime is reached.
I attached the code, maybe you can find the error in my custom code.